
	pushDummyFrame(&&exit_13361) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define null\? (lambda (x) (eq\? \'() x))) **********") ;
	DEBUG_TRACE("start: def: (define null\? (lambda (x) (eq\? \'() x)))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (eq\? \'() x))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13362 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13363;
	Closure_Code_13362:
	FUNCTION_ENTER("(lambda (x) (eq\? \'() x))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (eq\? \'() x)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (eq\? \'() x)") ;
	FUNCTION_EXIT ("(lambda (x) (eq\? \'() x))");
	Continue_13363:
	DEBUG_TRACE("end: lambda: (lambda (x) (eq\? \'() x))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("null\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define null\? (lambda (x) (eq\? \'() x)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13361:
	
	pushDummyFrame(&&exit_13364) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define box (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))) **********") ;
	DEBUG_TRACE("start: def: (define box (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1))))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13369 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13370;
	Closure_Code_13369:
	FUNCTION_ENTER("(lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (make-vector 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: make-vector") ;
	machine.reg[RES] = getSymbol("make-vector") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: make-vector") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13365) ;
	ret_from_app_13365:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (make-vector 1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (v) (begin (vector-set! v 0 x) v))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13367 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13368;
	Closure_Code_13367:
	FUNCTION_ENTER("(lambda (v) (begin (vector-set! v 0 x) v))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (vector-set! v 0 x) v)") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! v 0 x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: x") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: x") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13366) ;
	ret_from_app_13366:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! v 0 x)") ;
	/* start new begin statement */
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (vector-set! v 0 x) v)") ;
	FUNCTION_EXIT ("(lambda (v) (begin (vector-set! v 0 x) v))");
	Continue_13368:
	DEBUG_TRACE("end: lambda: (lambda (v) (begin (vector-set! v 0 x) v))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1))") ;
	FUNCTION_EXIT ("(lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))");
	Continue_13370:
	DEBUG_TRACE("end: lambda: (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("box") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define box (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13364:
	
	pushDummyFrame(&&exit_13371) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define foldr (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define foldr (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13388 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13389;
	Closure_Code_13388:
	FUNCTION_ENTER("(lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13386 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13387;
	Closure_Code_13386:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13372) ;
	ret_from_app_13372:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13380 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13381;
	Closure_Code_13380:
	FUNCTION_ENTER("(lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13373) ;
	ret_from_app_13373:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13378;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: final") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: final") ;
	goto If_Done_13379;
	If_Else_13378:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (binop (car s) ((vector-ref loop 0) (cdr s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref loop 0) (cdr s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13374) ;
	ret_from_app_13374:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13376) ;
	ret_from_app_13376:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13375) ;
	ret_from_app_13375:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref loop 0) (cdr s))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13377) ;
	ret_from_app_13377:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: binop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binop") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binop (car s) ((vector-ref loop 0) (cdr s)))") ;
	If_Done_13379:

	DEBUG_TRACE("end: if: (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))");
	Continue_13381:
	DEBUG_TRACE("end: lambda: (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13382) ;
	ret_from_app_13382:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) s)))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13384 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13385;
	Closure_Code_13384:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) s))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var bound: s") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13383) ;
	ret_from_app_13383:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s)") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) s))");
	Continue_13385:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) s))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) s)))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s)))))");
	Continue_13387:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f)") ;
	FUNCTION_EXIT ("(lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))");
	Continue_13389:
	DEBUG_TRACE("end: lambda: (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("foldr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define foldr (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13371:
	
	pushDummyFrame(&&exit_13390) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define add1 (lambda (n) (binary-add n 1))) **********") ;
	DEBUG_TRACE("start: def: (define add1 (lambda (n) (binary-add n 1)))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (binary-add n 1))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13391 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13392;
	Closure_Code_13391:
	FUNCTION_ENTER("(lambda (n) (binary-add n 1))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (binary-add n 1)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-add") ;
	machine.reg[RES] = getSymbol("binary-add") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-add") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-add n 1)") ;
	FUNCTION_EXIT ("(lambda (n) (binary-add n 1))");
	Continue_13392:
	DEBUG_TRACE("end: lambda: (lambda (n) (binary-add n 1))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("add1") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define add1 (lambda (n) (binary-add n 1)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13390:
	
	pushDummyFrame(&&exit_13393) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define sub1 (lambda (n) (binary-sub n 1))) **********") ;
	DEBUG_TRACE("start: def: (define sub1 (lambda (n) (binary-sub n 1)))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (binary-sub n 1))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13394 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13395;
	Closure_Code_13394:
	FUNCTION_ENTER("(lambda (n) (binary-sub n 1))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (binary-sub n 1)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-sub") ;
	machine.reg[RES] = getSymbol("binary-sub") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-sub") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-sub n 1)") ;
	FUNCTION_EXIT ("(lambda (n) (binary-sub n 1))");
	Continue_13395:
	DEBUG_TRACE("end: lambda: (lambda (n) (binary-sub n 1))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("sub1") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define sub1 (lambda (n) (binary-sub n 1)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13393:
	
	pushDummyFrame(&&exit_13396) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define order (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define order (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13420 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13421;
	Closure_Code_13420:
	FUNCTION_ENTER("(lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13418 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13419;
	Closure_Code_13418:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13397) ;
	ret_from_app_13397:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13407 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13408;
	Closure_Code_13407:
	FUNCTION_ENTER("(lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f))") ;
	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13399) ;
	ret_from_app_13399:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_13398 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)") ;

	DEBUG_TRACE("start: application: (< a (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13400) ;
	ret_from_app_13400:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var bound: <") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: <") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13401) ;
	ret_from_app_13401:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (< a (car s))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13405;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13402) ;
	ret_from_app_13402:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13403) ;
	ret_from_app_13403:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13404) ;
	ret_from_app_13404:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	goto If_Done_13406;
	If_Else_13405:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_13406:

	DEBUG_TRACE("end: if: (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)") ;
	or_end_13398:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f))") ;
	FUNCTION_EXIT ("(lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))");
	Continue_13408:
	DEBUG_TRACE("end: lambda: (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13409) ;
	ret_from_app_13409:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (a . s) ((vector-ref loop 0) a s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13416 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13417;
	Closure_Code_13416:
	FUNCTION_ENTER("(lambda () (lambda (a . s) ((vector-ref loop 0) a s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda (a . s) ((vector-ref loop 0) a s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13410) ;
	goto Continue_13411 ;
	Closure_Code_13410:
	FUNCTION_ENTER("(lambda (a . s) ((vector-ref loop 0) a s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13413:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13414 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13413 ;
	shift_frame_up_loop_end_13414:
	machine.fp += 1 ;
	goto after_frame_shift_13412 ;
	after_frame_shift_13412:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) a s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13415) ;
	ret_from_app_13415:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) a s)") ;
	FUNCTION_EXIT("(lambda (a . s) ((vector-ref loop 0) a s))") ;
	Continue_13411:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (a . s) ((vector-ref loop 0) a s))") ;
	FUNCTION_EXIT ("(lambda () (lambda (a . s) ((vector-ref loop 0) a s)))");
	Continue_13417:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (a . s) ((vector-ref loop 0) a s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))))");
	Continue_13419:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f)") ;
	FUNCTION_EXIT ("(lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))");
	Continue_13421:
	DEBUG_TRACE("end: lambda: (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("order") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define order (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13396:
	
	pushDummyFrame(&&exit_13422) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define < (order binary<\?)) **********") ;
	DEBUG_TRACE("start: def: (define < (order binary<\?))") ;
	DEBUG_TRACE("start: application: (order binary<\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary<\?") ;
	machine.reg[RES] = getSymbol("binary<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary<\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13423) ;
	ret_from_app_13423:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary<\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("<") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define < (order binary<\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13422:
	
	pushDummyFrame(&&exit_13424) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define <= ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b))))) **********") ;
	DEBUG_TRACE("start: def: (define <= ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b)))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (or (binary<\? a b) (binary=\? a b)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13427 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13428;
	Closure_Code_13427:
	FUNCTION_ENTER("(lambda (a b) (or (binary<\? a b) (binary=\? a b)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (binary<\? a b) (binary=\? a b))") ;
	DEBUG_TRACE("start: application: (binary<\? a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary<\?") ;
	machine.reg[RES] = getSymbol("binary<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13426) ;
	ret_from_app_13426:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary<\? a b)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_13425 ; /* end the 'or' if true */
	DEBUG_TRACE("start: app tp: (binary=\? a b)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary=\?") ;
	machine.reg[RES] = getSymbol("binary=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary=\? a b)") ;
	or_end_13425:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (binary<\? a b) (binary=\? a b))") ;
	FUNCTION_EXIT ("(lambda (a b) (or (binary<\? a b) (binary=\? a b)))");
	Continue_13428:
	DEBUG_TRACE("end: lambda: (lambda (a b) (or (binary<\? a b) (binary=\? a b)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary<=\?) (order binary<=\?))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13430 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13431;
	Closure_Code_13430:
	FUNCTION_ENTER("(lambda (binary<=\?) (order binary<=\?))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (order binary<=\?)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: binary<=\?") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary<=\?") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (order binary<=\?)") ;
	FUNCTION_EXIT ("(lambda (binary<=\?) (order binary<=\?))");
	Continue_13431:
	DEBUG_TRACE("end: lambda: (lambda (binary<=\?) (order binary<=\?))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13429) ;
	ret_from_app_13429:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("<=") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define <= ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13424:
	
	pushDummyFrame(&&exit_13432) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define > ((lambda (binary>\?) (order binary>\?)) (lambda (a b) (binary<\? b a)))) **********") ;
	DEBUG_TRACE("start: def: (define > ((lambda (binary>\?) (order binary>\?)) (lambda (a b) (binary<\? b a))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary>\?) (order binary>\?)) (lambda (a b) (binary<\? b a)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (binary<\? b a))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13433 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13434;
	Closure_Code_13433:
	FUNCTION_ENTER("(lambda (a b) (binary<\? b a))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (binary<\? b a)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary<\?") ;
	machine.reg[RES] = getSymbol("binary<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary<\? b a)") ;
	FUNCTION_EXIT ("(lambda (a b) (binary<\? b a))");
	Continue_13434:
	DEBUG_TRACE("end: lambda: (lambda (a b) (binary<\? b a))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary>\?) (order binary>\?))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13436 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13437;
	Closure_Code_13436:
	FUNCTION_ENTER("(lambda (binary>\?) (order binary>\?))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (order binary>\?)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: binary>\?") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary>\?") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (order binary>\?)") ;
	FUNCTION_EXIT ("(lambda (binary>\?) (order binary>\?))");
	Continue_13437:
	DEBUG_TRACE("end: lambda: (lambda (binary>\?) (order binary>\?))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13435) ;
	ret_from_app_13435:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary>\?) (order binary>\?)) (lambda (a b) (binary<\? b a)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol(">") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define > ((lambda (binary>\?) (order binary>\?)) (lambda (a b) (binary<\? b a))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13432:
	
	pushDummyFrame(&&exit_13438) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define >= ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary<\? b a))))) **********") ;
	DEBUG_TRACE("start: def: (define >= ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary<\? b a)))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary<\? b a))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (or (binary=\? a b) (binary<\? b a)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13441 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13442;
	Closure_Code_13441:
	FUNCTION_ENTER("(lambda (a b) (or (binary=\? a b) (binary<\? b a)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (binary=\? a b) (binary<\? b a))") ;
	DEBUG_TRACE("start: application: (binary=\? a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary=\?") ;
	machine.reg[RES] = getSymbol("binary=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13440) ;
	ret_from_app_13440:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary=\? a b)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_13439 ; /* end the 'or' if true */
	DEBUG_TRACE("start: app tp: (binary<\? b a)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary<\?") ;
	machine.reg[RES] = getSymbol("binary<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary<\? b a)") ;
	or_end_13439:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (binary=\? a b) (binary<\? b a))") ;
	FUNCTION_EXIT ("(lambda (a b) (or (binary=\? a b) (binary<\? b a)))");
	Continue_13442:
	DEBUG_TRACE("end: lambda: (lambda (a b) (or (binary=\? a b) (binary<\? b a)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary>=\?) (order binary>=\?))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13444 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13445;
	Closure_Code_13444:
	FUNCTION_ENTER("(lambda (binary>=\?) (order binary>=\?))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (order binary>=\?)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: binary>=\?") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary>=\?") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (order binary>=\?)") ;
	FUNCTION_EXIT ("(lambda (binary>=\?) (order binary>=\?))");
	Continue_13445:
	DEBUG_TRACE("end: lambda: (lambda (binary>=\?) (order binary>=\?))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13443) ;
	ret_from_app_13443:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary<\? b a))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol(">=") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define >= ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary<\? b a)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13438:
	
	pushDummyFrame(&&exit_13446) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define = (order binary=\?)) **********") ;
	DEBUG_TRACE("start: def: (define = (order binary=\?))") ;
	DEBUG_TRACE("start: application: (order binary=\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary=\?") ;
	machine.reg[RES] = getSymbol("binary=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary=\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13447) ;
	ret_from_app_13447:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary=\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("=") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define = (order binary=\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13446:
	
	pushDummyFrame(&&exit_13448) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define <> ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define <> ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13475 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13476;
	Closure_Code_13475:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13450) ;
	ret_from_app_13450:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13462 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13463;
	Closure_Code_13462:
	FUNCTION_ENTER("(lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f))") ;
	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13452) ;
	ret_from_app_13452:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_13451 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)") ;

	DEBUG_TRACE("start: application: (andmap (lambda (b) (not (= a b))) s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: lambda: (lambda (b) (not (= a b)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13454 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13455;
	Closure_Code_13454:
	FUNCTION_ENTER("(lambda (b) (not (= a b)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (not (= a b))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (= a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: a") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13453) ;
	ret_from_app_13453:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= a b)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not (= a b))") ;
	FUNCTION_EXIT ("(lambda (b) (not (= a b)))");
	Continue_13455:
	DEBUG_TRACE("end: lambda: (lambda (b) (not (= a b)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: andmap") ;
	machine.reg[RES] = getSymbol("andmap") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: andmap") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13456) ;
	ret_from_app_13456:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (andmap (lambda (b) (not (= a b))) s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13460;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13457) ;
	ret_from_app_13457:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13458) ;
	ret_from_app_13458:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13459) ;
	ret_from_app_13459:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	goto If_Done_13461;
	If_Else_13460:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_13461:

	DEBUG_TRACE("end: if: (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)") ;
	or_end_13451:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f))") ;
	FUNCTION_EXIT ("(lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))");
	Continue_13463:
	DEBUG_TRACE("end: lambda: (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13464) ;
	ret_from_app_13464:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13473 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13474;
	Closure_Code_13473:
	FUNCTION_ENTER("(lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda s ((vector-ref loop 0) (car s) (cdr s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13465) ;
	goto Continue_13466 ;
	Closure_Code_13465:
	FUNCTION_ENTER("(lambda s ((vector-ref loop 0) (car s) (cdr s)))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13468:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13469 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13468 ;
	shift_frame_up_loop_end_13469:
	machine.fp += 1 ;
	goto after_frame_shift_13467 ;
	after_frame_shift_13467:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13470) ;
	ret_from_app_13470:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13471) ;
	ret_from_app_13471:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13472) ;
	ret_from_app_13472:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	FUNCTION_EXIT("(lambda s ((vector-ref loop 0) (car s) (cdr s)))") ;
	Continue_13466:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s ((vector-ref loop 0) (car s) (cdr s)))") ;
	FUNCTION_EXIT ("(lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))");
	Continue_13474:
	DEBUG_TRACE("end: lambda: (lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))))");
	Continue_13476:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13449) ;
	ret_from_app_13449:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("<>") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define <> ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13448:
	
	pushDummyFrame(&&exit_13477) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define not (lambda (x) (if x #f #t))) **********") ;
	DEBUG_TRACE("start: def: (define not (lambda (x) (if x #f #t)))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (if x #f #t))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13480 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13481;
	Closure_Code_13480:
	FUNCTION_ENTER("(lambda (x) (if x #f #t))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if x #f #t)") ;

	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13478;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_13479;
	If_Else_13478:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(TRUE);
	If_Done_13479:

	DEBUG_TRACE("end: if: (if x #f #t)") ;
	FUNCTION_EXIT ("(lambda (x) (if x #f #t))");
	Continue_13481:
	DEBUG_TRACE("end: lambda: (lambda (x) (if x #f #t))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("not") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define not (lambda (x) (if x #f #t)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13477:
	
	pushDummyFrame(&&exit_13482) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define compose ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x)))))) **********") ;
	DEBUG_TRACE("start: def: (define compose ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x))))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (f g) (lambda (x) (f (g x))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13486 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13487;
	Closure_Code_13486:
	FUNCTION_ENTER("(lambda (f g) (lambda (x) (f (g x))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: lambda: (lambda (x) (f (g x)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13484 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13485;
	Closure_Code_13484:
	FUNCTION_ENTER("(lambda (x) (f (g x)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (f (g x))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (g x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var bound: g") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: g") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13483) ;
	ret_from_app_13483:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (g x)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: f") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: f") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (f (g x))") ;
	FUNCTION_EXIT ("(lambda (x) (f (g x)))");
	Continue_13485:
	DEBUG_TRACE("end: lambda: (lambda (x) (f (g x)))") ;
	FUNCTION_EXIT ("(lambda (f g) (lambda (x) (f (g x))))");
	Continue_13487:
	DEBUG_TRACE("end: lambda: (lambda (f g) (lambda (x) (f (g x))))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13496 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13497;
	Closure_Code_13496:
	FUNCTION_ENTER("(lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda opt: (lambda s (foldr binary-compose (lambda (x) x) s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13489) ;
	goto Continue_13490 ;
	Closure_Code_13489:
	FUNCTION_ENTER("(lambda s (foldr binary-compose (lambda (x) x) s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13492:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13493 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13492 ;
	shift_frame_up_loop_end_13493:
	machine.fp += 1 ;
	goto after_frame_shift_13491 ;
	after_frame_shift_13491:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr binary-compose (lambda (x) x) s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: lambda: (lambda (x) x)") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13494 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13495;
	Closure_Code_13494:
	FUNCTION_ENTER("(lambda (x) x)");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	FUNCTION_EXIT ("(lambda (x) x)");
	Continue_13495:
	DEBUG_TRACE("end: lambda: (lambda (x) x)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-compose") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-compose") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr binary-compose (lambda (x) x) s)") ;
	FUNCTION_EXIT("(lambda s (foldr binary-compose (lambda (x) x) s))") ;
	Continue_13490:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (foldr binary-compose (lambda (x) x) s))") ;
	FUNCTION_EXIT ("(lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s)))");
	Continue_13497:
	DEBUG_TRACE("end: lambda: (lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13488) ;
	ret_from_app_13488:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("compose") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define compose ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13482:
	
	pushDummyFrame(&&exit_13498) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caar (compose car car)) **********") ;
	DEBUG_TRACE("start: def: (define caar (compose car car))") ;
	DEBUG_TRACE("start: application: (compose car car)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13499) ;
	ret_from_app_13499:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car car)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caar (compose car car))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13498:
	
	pushDummyFrame(&&exit_13500) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadr (compose car cdr)) **********") ;
	DEBUG_TRACE("start: def: (define cadr (compose car cdr))") ;
	DEBUG_TRACE("start: application: (compose car cdr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13501) ;
	ret_from_app_13501:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadr (compose car cdr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13500:
	
	pushDummyFrame(&&exit_13502) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdar (compose cdr car)) **********") ;
	DEBUG_TRACE("start: def: (define cdar (compose cdr car))") ;
	DEBUG_TRACE("start: application: (compose cdr car)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13503) ;
	ret_from_app_13503:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr car)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdar (compose cdr car))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13502:
	
	pushDummyFrame(&&exit_13504) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddr (compose cdr cdr)) **********") ;
	DEBUG_TRACE("start: def: (define cddr (compose cdr cdr))") ;
	DEBUG_TRACE("start: application: (compose cdr cdr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13505) ;
	ret_from_app_13505:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddr (compose cdr cdr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13504:
	
	pushDummyFrame(&&exit_13506) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caaar (compose car caar)) **********") ;
	DEBUG_TRACE("start: def: (define caaar (compose car caar))") ;
	DEBUG_TRACE("start: application: (compose car caar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caar") ;
	machine.reg[RES] = getSymbol("caar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13507) ;
	ret_from_app_13507:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car caar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caaar (compose car caar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13506:
	
	pushDummyFrame(&&exit_13508) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caadr (compose car cadr)) **********") ;
	DEBUG_TRACE("start: def: (define caadr (compose car cadr))") ;
	DEBUG_TRACE("start: application: (compose car cadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cadr") ;
	machine.reg[RES] = getSymbol("cadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13509) ;
	ret_from_app_13509:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caadr (compose car cadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13508:
	
	pushDummyFrame(&&exit_13510) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadar (compose car cdar)) **********") ;
	DEBUG_TRACE("start: def: (define cadar (compose car cdar))") ;
	DEBUG_TRACE("start: application: (compose car cdar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdar") ;
	machine.reg[RES] = getSymbol("cdar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13511) ;
	ret_from_app_13511:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadar (compose car cdar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13510:
	
	pushDummyFrame(&&exit_13512) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caddr (compose car cddr)) **********") ;
	DEBUG_TRACE("start: def: (define caddr (compose car cddr))") ;
	DEBUG_TRACE("start: application: (compose car cddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cddr") ;
	machine.reg[RES] = getSymbol("cddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13513) ;
	ret_from_app_13513:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caddr (compose car cddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13512:
	
	pushDummyFrame(&&exit_13514) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdaar (compose cdr caar)) **********") ;
	DEBUG_TRACE("start: def: (define cdaar (compose cdr caar))") ;
	DEBUG_TRACE("start: application: (compose cdr caar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caar") ;
	machine.reg[RES] = getSymbol("caar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13515) ;
	ret_from_app_13515:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr caar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdaar (compose cdr caar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13514:
	
	pushDummyFrame(&&exit_13516) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdadr (compose cdr cadr)) **********") ;
	DEBUG_TRACE("start: def: (define cdadr (compose cdr cadr))") ;
	DEBUG_TRACE("start: application: (compose cdr cadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cadr") ;
	machine.reg[RES] = getSymbol("cadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13517) ;
	ret_from_app_13517:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdadr (compose cdr cadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13516:
	
	pushDummyFrame(&&exit_13518) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddar (compose cdr cdar)) **********") ;
	DEBUG_TRACE("start: def: (define cddar (compose cdr cdar))") ;
	DEBUG_TRACE("start: application: (compose cdr cdar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdar") ;
	machine.reg[RES] = getSymbol("cdar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13519) ;
	ret_from_app_13519:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddar (compose cdr cdar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13518:
	
	pushDummyFrame(&&exit_13520) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdddr (compose cdr cddr)) **********") ;
	DEBUG_TRACE("start: def: (define cdddr (compose cdr cddr))") ;
	DEBUG_TRACE("start: application: (compose cdr cddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cddr") ;
	machine.reg[RES] = getSymbol("cddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13521) ;
	ret_from_app_13521:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdddr (compose cdr cddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13520:
	
	pushDummyFrame(&&exit_13522) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caaaar (compose car caaar)) **********") ;
	DEBUG_TRACE("start: def: (define caaaar (compose car caaar))") ;
	DEBUG_TRACE("start: application: (compose car caaar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caaar") ;
	machine.reg[RES] = getSymbol("caaar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caaar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13523) ;
	ret_from_app_13523:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car caaar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caaaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caaaar (compose car caaar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13522:
	
	pushDummyFrame(&&exit_13524) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caaadr (compose car caadr)) **********") ;
	DEBUG_TRACE("start: def: (define caaadr (compose car caadr))") ;
	DEBUG_TRACE("start: application: (compose car caadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caadr") ;
	machine.reg[RES] = getSymbol("caadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13525) ;
	ret_from_app_13525:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car caadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caaadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caaadr (compose car caadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13524:
	
	pushDummyFrame(&&exit_13526) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caadar (compose car cadar)) **********") ;
	DEBUG_TRACE("start: def: (define caadar (compose car cadar))") ;
	DEBUG_TRACE("start: application: (compose car cadar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cadar") ;
	machine.reg[RES] = getSymbol("cadar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cadar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13527) ;
	ret_from_app_13527:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cadar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caadar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caadar (compose car cadar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13526:
	
	pushDummyFrame(&&exit_13528) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caaddr (compose car caddr)) **********") ;
	DEBUG_TRACE("start: def: (define caaddr (compose car caddr))") ;
	DEBUG_TRACE("start: application: (compose car caddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caddr") ;
	machine.reg[RES] = getSymbol("caddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13529) ;
	ret_from_app_13529:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car caddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caaddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caaddr (compose car caddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13528:
	
	pushDummyFrame(&&exit_13530) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadaar (compose car cdaar)) **********") ;
	DEBUG_TRACE("start: def: (define cadaar (compose car cdaar))") ;
	DEBUG_TRACE("start: application: (compose car cdaar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdaar") ;
	machine.reg[RES] = getSymbol("cdaar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdaar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13531) ;
	ret_from_app_13531:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdaar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadaar (compose car cdaar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13530:
	
	pushDummyFrame(&&exit_13532) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadadr (compose car cdadr)) **********") ;
	DEBUG_TRACE("start: def: (define cadadr (compose car cdadr))") ;
	DEBUG_TRACE("start: application: (compose car cdadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdadr") ;
	machine.reg[RES] = getSymbol("cdadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13533) ;
	ret_from_app_13533:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadadr (compose car cdadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13532:
	
	pushDummyFrame(&&exit_13534) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caddar (compose car cddar)) **********") ;
	DEBUG_TRACE("start: def: (define caddar (compose car cddar))") ;
	DEBUG_TRACE("start: application: (compose car cddar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cddar") ;
	machine.reg[RES] = getSymbol("cddar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cddar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13535) ;
	ret_from_app_13535:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cddar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caddar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caddar (compose car cddar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13534:
	
	pushDummyFrame(&&exit_13536) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadddr (compose car cdddr)) **********") ;
	DEBUG_TRACE("start: def: (define cadddr (compose car cdddr))") ;
	DEBUG_TRACE("start: application: (compose car cdddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdddr") ;
	machine.reg[RES] = getSymbol("cdddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13537) ;
	ret_from_app_13537:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadddr (compose car cdddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13536:
	
	pushDummyFrame(&&exit_13538) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdaaar (compose cdr caaar)) **********") ;
	DEBUG_TRACE("start: def: (define cdaaar (compose cdr caaar))") ;
	DEBUG_TRACE("start: application: (compose cdr caaar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caaar") ;
	machine.reg[RES] = getSymbol("caaar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caaar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13539) ;
	ret_from_app_13539:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr caaar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdaaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdaaar (compose cdr caaar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13538:
	
	pushDummyFrame(&&exit_13540) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdaadr (compose cdr caadr)) **********") ;
	DEBUG_TRACE("start: def: (define cdaadr (compose cdr caadr))") ;
	DEBUG_TRACE("start: application: (compose cdr caadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caadr") ;
	machine.reg[RES] = getSymbol("caadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13541) ;
	ret_from_app_13541:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr caadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdaadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdaadr (compose cdr caadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13540:
	
	pushDummyFrame(&&exit_13542) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdadar (compose cdr cadar)) **********") ;
	DEBUG_TRACE("start: def: (define cdadar (compose cdr cadar))") ;
	DEBUG_TRACE("start: application: (compose cdr cadar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cadar") ;
	machine.reg[RES] = getSymbol("cadar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cadar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13543) ;
	ret_from_app_13543:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cadar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdadar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdadar (compose cdr cadar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13542:
	
	pushDummyFrame(&&exit_13544) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdaddr (compose cdr caddr)) **********") ;
	DEBUG_TRACE("start: def: (define cdaddr (compose cdr caddr))") ;
	DEBUG_TRACE("start: application: (compose cdr caddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caddr") ;
	machine.reg[RES] = getSymbol("caddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13545) ;
	ret_from_app_13545:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr caddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdaddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdaddr (compose cdr caddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13544:
	
	pushDummyFrame(&&exit_13546) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddaar (compose cdr cdaar)) **********") ;
	DEBUG_TRACE("start: def: (define cddaar (compose cdr cdaar))") ;
	DEBUG_TRACE("start: application: (compose cdr cdaar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdaar") ;
	machine.reg[RES] = getSymbol("cdaar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdaar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13547) ;
	ret_from_app_13547:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdaar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddaar (compose cdr cdaar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13546:
	
	pushDummyFrame(&&exit_13548) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddadr (compose cdr cdadr)) **********") ;
	DEBUG_TRACE("start: def: (define cddadr (compose cdr cdadr))") ;
	DEBUG_TRACE("start: application: (compose cdr cdadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdadr") ;
	machine.reg[RES] = getSymbol("cdadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13549) ;
	ret_from_app_13549:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddadr (compose cdr cdadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13548:
	
	pushDummyFrame(&&exit_13550) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdddar (compose cdr cddar)) **********") ;
	DEBUG_TRACE("start: def: (define cdddar (compose cdr cddar))") ;
	DEBUG_TRACE("start: application: (compose cdr cddar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cddar") ;
	machine.reg[RES] = getSymbol("cddar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cddar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13551) ;
	ret_from_app_13551:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cddar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdddar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdddar (compose cdr cddar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13550:
	
	pushDummyFrame(&&exit_13552) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddddr (compose cdr cdddr)) **********") ;
	DEBUG_TRACE("start: def: (define cddddr (compose cdr cdddr))") ;
	DEBUG_TRACE("start: application: (compose cdr cdddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdddr") ;
	machine.reg[RES] = getSymbol("cdddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13553) ;
	ret_from_app_13553:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddddr (compose cdr cdddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13552:
	
	pushDummyFrame(&&exit_13554) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define ^variadic-right-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define ^variadic-right-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13576 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13577;
	Closure_Code_13576:
	FUNCTION_ENTER("(lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13574 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13575;
	Closure_Code_13574:
	FUNCTION_ENTER("(lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! op-list (box op-list))") ;
	DEBUG_TRACE("start: application: (box op-list)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: op-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13555) ;
	ret_from_app_13555:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box op-list)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! op-list (box op-list))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13563 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13564;
	Closure_Code_13563:
	FUNCTION_ENTER("(lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13556) ;
	ret_from_app_13556:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13561;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: base-value") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: base-value") ;
	goto If_Done_13562;
	If_Else_13561:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (binary-op (car s) ((vector-ref op-list 0) (cdr s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref op-list 0) (cdr s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13557) ;
	ret_from_app_13557:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref op-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: op-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13559) ;
	ret_from_app_13559:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref op-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13558) ;
	ret_from_app_13558:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref op-list 0) (cdr s))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13560) ;
	ret_from_app_13560:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: binary-op") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-op (car s) ((vector-ref op-list 0) (cdr s)))") ;
	If_Done_13562:

	DEBUG_TRACE("end: if: (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))");
	Continue_13564:
	DEBUG_TRACE("end: lambda: (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: op-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13565) ;
	ret_from_app_13565:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda args ((vector-ref op-list 0) args))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda args ((vector-ref op-list 0) args)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13572 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13573;
	Closure_Code_13572:
	FUNCTION_ENTER("(lambda () (lambda args ((vector-ref op-list 0) args)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda args ((vector-ref op-list 0) args))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13566) ;
	goto Continue_13567 ;
	Closure_Code_13566:
	FUNCTION_ENTER("(lambda args ((vector-ref op-list 0) args))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13569:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13570 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13569 ;
	shift_frame_up_loop_end_13570:
	machine.fp += 1 ;
	goto after_frame_shift_13568 ;
	after_frame_shift_13568:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((vector-ref op-list 0) args)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref op-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: op-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13571) ;
	ret_from_app_13571:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref op-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref op-list 0) args)") ;
	FUNCTION_EXIT("(lambda args ((vector-ref op-list 0) args))") ;
	Continue_13567:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda args ((vector-ref op-list 0) args))") ;
	FUNCTION_EXIT ("(lambda () (lambda args ((vector-ref op-list 0) args)))");
	Continue_13573:
	DEBUG_TRACE("end: lambda: (lambda () (lambda args ((vector-ref op-list 0) args)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda args ((vector-ref op-list 0) args))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))") ;
	FUNCTION_EXIT ("(lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args))))))");
	Continue_13575:
	DEBUG_TRACE("end: lambda: (lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f)") ;
	FUNCTION_EXIT ("(lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))");
	Continue_13577:
	DEBUG_TRACE("end: lambda: (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("^variadic-right-from-binary") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define ^variadic-right-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13554:
	
	pushDummyFrame(&&exit_13578) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define ^variadic-left-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define ^variadic-left-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13605 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13606;
	Closure_Code_13605:
	FUNCTION_ENTER("(lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13603 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13604;
	Closure_Code_13603:
	FUNCTION_ENTER("(lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! op-list (box op-list))") ;
	DEBUG_TRACE("start: application: (box op-list)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: op-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13579) ;
	ret_from_app_13579:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box op-list)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! op-list (box op-list))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13587 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13588;
	Closure_Code_13587:
	FUNCTION_ENTER("(lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s)))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13580) ;
	ret_from_app_13580:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13585;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: acc") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: acc") ;
	goto If_Done_13586;
	If_Else_13585:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13581) ;
	ret_from_app_13581:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (binary-op acc (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13582) ;
	ret_from_app_13582:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: acc") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: acc") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var bound: binary-op") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13583) ;
	ret_from_app_13583:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-op acc (car s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref op-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: op-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13584) ;
	ret_from_app_13584:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref op-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))") ;
	If_Done_13586:

	DEBUG_TRACE("end: if: (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s)))") ;
	FUNCTION_EXIT ("(lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))");
	Continue_13588:
	DEBUG_TRACE("end: lambda: (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: op-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13589) ;
	ret_from_app_13589:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13601 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13602;
	Closure_Code_13601:
	FUNCTION_ENTER("(lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13590) ;
	goto Continue_13591 ;
	Closure_Code_13590:
	FUNCTION_ENTER("(lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13593:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13594 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13593 ;
	shift_frame_up_loop_end_13594:
	machine.fp += 1 ;
	goto after_frame_shift_13592 ;
	after_frame_shift_13592:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: if: (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))") ;

	DEBUG_TRACE("start: application: (null\? args)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13595) ;
	ret_from_app_13595:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? args)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13599;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: base-value") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 2, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: base-value") ;
	goto If_Done_13600;
	If_Else_13599:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref op-list 0) (car args) (cdr args))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr args)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13596) ;
	ret_from_app_13596:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr args)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car args)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13597) ;
	ret_from_app_13597:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car args)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref op-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: op-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13598) ;
	ret_from_app_13598:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref op-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref op-list 0) (car args) (cdr args))") ;
	If_Done_13600:

	DEBUG_TRACE("end: if: (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))") ;
	FUNCTION_EXIT("(lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))") ;
	Continue_13591:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))") ;
	FUNCTION_EXIT ("(lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))");
	Continue_13602:
	DEBUG_TRACE("end: lambda: (lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))") ;
	FUNCTION_EXIT ("(lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))))))");
	Continue_13604:
	DEBUG_TRACE("end: lambda: (lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args))))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f)") ;
	FUNCTION_EXIT ("(lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f))");
	Continue_13606:
	DEBUG_TRACE("end: lambda: (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("^variadic-left-from-binary") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define ^variadic-left-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value ((vector-ref op-list 0) (car args) (cdr args)))))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13578:
	
	pushDummyFrame(&&exit_13607) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define + (^variadic-right-from-binary binary-add 0)) **********") ;
	DEBUG_TRACE("start: def: (define + (^variadic-right-from-binary binary-add 0))") ;
	DEBUG_TRACE("start: application: (^variadic-right-from-binary binary-add 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: binary-add") ;
	machine.reg[RES] = getSymbol("binary-add") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-add") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^variadic-right-from-binary") ;
	machine.reg[RES] = getSymbol("^variadic-right-from-binary") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^variadic-right-from-binary") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13608) ;
	ret_from_app_13608:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^variadic-right-from-binary binary-add 0)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("+") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define + (^variadic-right-from-binary binary-add 0))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13607:
	
	pushDummyFrame(&&exit_13609) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define * (^variadic-right-from-binary binary-mul 1)) **********") ;
	DEBUG_TRACE("start: def: (define * (^variadic-right-from-binary binary-mul 1))") ;
	DEBUG_TRACE("start: application: (^variadic-right-from-binary binary-mul 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: binary-mul") ;
	machine.reg[RES] = getSymbol("binary-mul") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-mul") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^variadic-right-from-binary") ;
	machine.reg[RES] = getSymbol("^variadic-right-from-binary") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^variadic-right-from-binary") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13610) ;
	ret_from_app_13610:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^variadic-right-from-binary binary-mul 1)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("*") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define * (^variadic-right-from-binary binary-mul 1))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13609:
	
	pushDummyFrame(&&exit_13611) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define - (^variadic-left-from-binary binary-sub 0)) **********") ;
	DEBUG_TRACE("start: def: (define - (^variadic-left-from-binary binary-sub 0))") ;
	DEBUG_TRACE("start: application: (^variadic-left-from-binary binary-sub 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: binary-sub") ;
	machine.reg[RES] = getSymbol("binary-sub") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-sub") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^variadic-left-from-binary") ;
	machine.reg[RES] = getSymbol("^variadic-left-from-binary") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^variadic-left-from-binary") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13612) ;
	ret_from_app_13612:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^variadic-left-from-binary binary-sub 0)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("-") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define - (^variadic-left-from-binary binary-sub 0))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13611:
	
	pushDummyFrame(&&exit_13613) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define / (^variadic-left-from-binary binary-div 1)) **********") ;
	DEBUG_TRACE("start: def: (define / (^variadic-left-from-binary binary-div 1))") ;
	DEBUG_TRACE("start: application: (^variadic-left-from-binary binary-div 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: binary-div") ;
	machine.reg[RES] = getSymbol("binary-div") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-div") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^variadic-left-from-binary") ;
	machine.reg[RES] = getSymbol("^variadic-left-from-binary") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^variadic-left-from-binary") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13614) ;
	ret_from_app_13614:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^variadic-left-from-binary binary-div 1)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("/") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define / (^variadic-left-from-binary binary-div 1))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13613:
	
	pushDummyFrame(&&exit_13615) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define ^char-op (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define ^char-op (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13620 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13621;
	Closure_Code_13620:
	FUNCTION_ENTER("(lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13618 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13619;
	Closure_Code_13618:
	FUNCTION_ENTER("(lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (int-op (char->integer ch1) (char->integer ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char->integer ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13616) ;
	ret_from_app_13616:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13617) ;
	ret_from_app_13617:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: int-op") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: int-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (int-op (char->integer ch1) (char->integer ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))");
	Continue_13619:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))") ;
	FUNCTION_EXIT ("(lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))");
	Continue_13621:
	DEBUG_TRACE("end: lambda: (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("^char-op") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define ^char-op (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13615:
	
	pushDummyFrame(&&exit_13622) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char=\? (order (^char-op =))) **********") ;
	DEBUG_TRACE("start: def: (define char=\? (order (^char-op =)))") ;
	DEBUG_TRACE("start: application: (order (^char-op =))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op =)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13623) ;
	ret_from_app_13623:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op =)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13624) ;
	ret_from_app_13624:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op =))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char=\? (order (^char-op =)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13622:
	
	pushDummyFrame(&&exit_13625) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char<=\? (order (^char-op <=))) **********") ;
	DEBUG_TRACE("start: def: (define char<=\? (order (^char-op <=)))") ;
	DEBUG_TRACE("start: application: (order (^char-op <=))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op <=)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: <=") ;
	machine.reg[RES] = getSymbol("<=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: <=") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13626) ;
	ret_from_app_13626:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op <=)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13627) ;
	ret_from_app_13627:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op <=))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char<=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char<=\? (order (^char-op <=)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13625:
	
	pushDummyFrame(&&exit_13628) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char<\? (order (^char-op <))) **********") ;
	DEBUG_TRACE("start: def: (define char<\? (order (^char-op <)))") ;
	DEBUG_TRACE("start: application: (order (^char-op <))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op <)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: <") ;
	machine.reg[RES] = getSymbol("<") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: <") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13629) ;
	ret_from_app_13629:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op <)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13630) ;
	ret_from_app_13630:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op <))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char<\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char<\? (order (^char-op <)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13628:
	
	pushDummyFrame(&&exit_13631) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char>=\? (order (^char-op >=))) **********") ;
	DEBUG_TRACE("start: def: (define char>=\? (order (^char-op >=)))") ;
	DEBUG_TRACE("start: application: (order (^char-op >=))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op >=)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: >=") ;
	machine.reg[RES] = getSymbol(">=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: >=") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13632) ;
	ret_from_app_13632:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op >=)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13633) ;
	ret_from_app_13633:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op >=))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char>=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char>=\? (order (^char-op >=)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13631:
	
	pushDummyFrame(&&exit_13634) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char>\? (order (^char-op >))) **********") ;
	DEBUG_TRACE("start: def: (define char>\? (order (^char-op >)))") ;
	DEBUG_TRACE("start: application: (order (^char-op >))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op >)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: >") ;
	machine.reg[RES] = getSymbol(">") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: >") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13635) ;
	ret_from_app_13635:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op >)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13636) ;
	ret_from_app_13636:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op >))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char>\? (order (^char-op >)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13634:
	
	pushDummyFrame(&&exit_13637) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-uppercase\? (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))) **********") ;
	DEBUG_TRACE("start: def: (define char-uppercase\? (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13641 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13642;
	Closure_Code_13641:
	FUNCTION_ENTER("(lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f)") ;

	DEBUG_TRACE("start: application: (char<=\? #\\A ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeChar('A') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13638) ;
	ret_from_app_13638:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char<=\? #\\A ch)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13639;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (char<=\? ch #\\Z)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeChar('Z') ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<=\? ch #\\Z)") ;
	goto If_Done_13640;
	If_Else_13639:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_13640:

	DEBUG_TRACE("end: if: (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f)") ;
	FUNCTION_EXIT ("(lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))");
	Continue_13642:
	DEBUG_TRACE("end: lambda: (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-uppercase\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-uppercase\? (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13637:
	
	pushDummyFrame(&&exit_13643) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-lowercase\? (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))) **********") ;
	DEBUG_TRACE("start: def: (define char-lowercase\? (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13647 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13648;
	Closure_Code_13647:
	FUNCTION_ENTER("(lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f)") ;

	DEBUG_TRACE("start: application: (char<=\? #\\a ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeChar('a') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13644) ;
	ret_from_app_13644:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char<=\? #\\a ch)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13645;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (char<=\? ch #\\z)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeChar('z') ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<=\? ch #\\z)") ;
	goto If_Done_13646;
	If_Else_13645:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_13646:

	DEBUG_TRACE("end: if: (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f)") ;
	FUNCTION_EXIT ("(lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))");
	Continue_13648:
	DEBUG_TRACE("end: lambda: (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-lowercase\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-lowercase\? (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13643:
	
	pushDummyFrame(&&exit_13649) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-upcase ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))) **********") ;
	DEBUG_TRACE("start: def: (define char-upcase ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A))))") ;
	DEBUG_TRACE("start: application: ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (- (char->integer #\\a) (char->integer #\\A))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (char->integer #\\A)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeChar('A') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13650) ;
	ret_from_app_13650:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer #\\A)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer #\\a)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeChar('a') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13651) ;
	ret_from_app_13651:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer #\\a)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13652) ;
	ret_from_app_13652:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (char->integer #\\a) (char->integer #\\A))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13661 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13662;
	Closure_Code_13661:
	FUNCTION_ENTER("(lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13659 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13660;
	Closure_Code_13659:
	FUNCTION_ENTER("(lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)") ;

	DEBUG_TRACE("start: application: (char-lowercase\? ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-lowercase\?") ;
	machine.reg[RES] = getSymbol("char-lowercase?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-lowercase\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13654) ;
	ret_from_app_13654:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-lowercase\? ch)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13657;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (integer->char (- (char->integer ch) char-aA))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (- (char->integer ch) char-aA)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: char-aA") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: char-aA") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13655) ;
	ret_from_app_13655:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer ch)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13656) ;
	ret_from_app_13656:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (char->integer ch) char-aA)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: integer->char") ;
	machine.reg[RES] = getSymbol("integer->char") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: integer->char") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (integer->char (- (char->integer ch) char-aA))") ;
	goto If_Done_13658;
	If_Else_13657:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	If_Done_13658:

	DEBUG_TRACE("end: if: (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)") ;
	FUNCTION_EXIT ("(lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))");
	Continue_13660:
	DEBUG_TRACE("end: lambda: (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))") ;
	FUNCTION_EXIT ("(lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)))");
	Continue_13662:
	DEBUG_TRACE("end: lambda: (lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13653) ;
	ret_from_app_13653:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-upcase") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-upcase ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13649:
	
	pushDummyFrame(&&exit_13663) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-downcase ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))) **********") ;
	DEBUG_TRACE("start: def: (define char-downcase ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A))))") ;
	DEBUG_TRACE("start: application: ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (- (char->integer #\\a) (char->integer #\\A))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (char->integer #\\A)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeChar('A') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13664) ;
	ret_from_app_13664:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer #\\A)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer #\\a)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeChar('a') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13665) ;
	ret_from_app_13665:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer #\\a)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13666) ;
	ret_from_app_13666:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (char->integer #\\a) (char->integer #\\A))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13675 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13676;
	Closure_Code_13675:
	FUNCTION_ENTER("(lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13673 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13674;
	Closure_Code_13673:
	FUNCTION_ENTER("(lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)") ;

	DEBUG_TRACE("start: application: (char-uppercase\? ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-uppercase\?") ;
	machine.reg[RES] = getSymbol("char-uppercase?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-uppercase\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13668) ;
	ret_from_app_13668:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-uppercase\? ch)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13671;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (integer->char (+ (char->integer ch) char-aA))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (+ (char->integer ch) char-aA)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: char-aA") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: char-aA") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13669) ;
	ret_from_app_13669:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer ch)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: +") ;
	machine.reg[RES] = getSymbol("+") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: +") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13670) ;
	ret_from_app_13670:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (+ (char->integer ch) char-aA)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: integer->char") ;
	machine.reg[RES] = getSymbol("integer->char") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: integer->char") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (integer->char (+ (char->integer ch) char-aA))") ;
	goto If_Done_13672;
	If_Else_13671:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	If_Done_13672:

	DEBUG_TRACE("end: if: (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)") ;
	FUNCTION_EXIT ("(lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))");
	Continue_13674:
	DEBUG_TRACE("end: lambda: (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))") ;
	FUNCTION_EXIT ("(lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)))");
	Continue_13676:
	DEBUG_TRACE("end: lambda: (lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13667) ;
	ret_from_app_13667:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-downcase") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-downcase ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13663:
	
	pushDummyFrame(&&exit_13677) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci<=\? (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci<=\? (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13680 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13681;
	Closure_Code_13680:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char<=\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13678) ;
	ret_from_app_13678:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13679) ;
	ret_from_app_13679:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<=\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_13681:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13682) ;
	ret_from_app_13682:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci<=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci<=\? (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13677:
	
	pushDummyFrame(&&exit_13683) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci<\? (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci<\? (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13686 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13687;
	Closure_Code_13686:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char<\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13684) ;
	ret_from_app_13684:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13685) ;
	ret_from_app_13685:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<\?") ;
	machine.reg[RES] = getSymbol("char<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_13687:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13688) ;
	ret_from_app_13688:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci<\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci<\? (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13683:
	
	pushDummyFrame(&&exit_13689) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci=\? (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci=\? (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13692 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13693;
	Closure_Code_13692:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char=\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13690) ;
	ret_from_app_13690:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13691) ;
	ret_from_app_13691:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char=\?") ;
	machine.reg[RES] = getSymbol("char=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char=\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_13693:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13694) ;
	ret_from_app_13694:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci=\? (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13689:
	
	pushDummyFrame(&&exit_13695) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci>\? (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci>\? (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13698 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13699;
	Closure_Code_13698:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char>\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13696) ;
	ret_from_app_13696:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13697) ;
	ret_from_app_13697:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char>\?") ;
	machine.reg[RES] = getSymbol("char>?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char>\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char>\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_13699:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13700) ;
	ret_from_app_13700:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci>\? (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13695:
	
	pushDummyFrame(&&exit_13701) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci>=\? (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci>=\? (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13704 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13705;
	Closure_Code_13704:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char>=\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13702) ;
	ret_from_app_13702:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13703) ;
	ret_from_app_13703:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char>=\?") ;
	machine.reg[RES] = getSymbol("char>=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char>=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char>=\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_13705:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13706) ;
	ret_from_app_13706:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci>=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci>=\? (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13701:
	
	pushDummyFrame(&&exit_13707) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string-upcase (lambda (string) (list->string (map char-upcase (string->list string))))) **********") ;
	DEBUG_TRACE("start: def: (define string-upcase (lambda (string) (list->string (map char-upcase (string->list string)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (string) (list->string (map char-upcase (string->list string))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13710 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13711;
	Closure_Code_13710:
	FUNCTION_ENTER("(lambda (string) (list->string (map char-upcase (string->list string))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (list->string (map char-upcase (string->list string)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (map char-upcase (string->list string))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (string->list string)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: string") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: string") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13708) ;
	ret_from_app_13708:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list string)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13709) ;
	ret_from_app_13709:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map char-upcase (string->list string))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->string") ;
	machine.reg[RES] = getSymbol("list->string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->string") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->string (map char-upcase (string->list string)))") ;
	FUNCTION_EXIT ("(lambda (string) (list->string (map char-upcase (string->list string))))");
	Continue_13711:
	DEBUG_TRACE("end: lambda: (lambda (string) (list->string (map char-upcase (string->list string))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string-upcase") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string-upcase (lambda (string) (list->string (map char-upcase (string->list string)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13707:
	
	pushDummyFrame(&&exit_13712) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string-downcase (lambda (string) (list->string (map char-downcase (string->list string))))) **********") ;
	DEBUG_TRACE("start: def: (define string-downcase (lambda (string) (list->string (map char-downcase (string->list string)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (string) (list->string (map char-downcase (string->list string))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13715 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13716;
	Closure_Code_13715:
	FUNCTION_ENTER("(lambda (string) (list->string (map char-downcase (string->list string))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (list->string (map char-downcase (string->list string)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (map char-downcase (string->list string))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (string->list string)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: string") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: string") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13713) ;
	ret_from_app_13713:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list string)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: char-downcase") ;
	machine.reg[RES] = getSymbol("char-downcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-downcase") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13714) ;
	ret_from_app_13714:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map char-downcase (string->list string))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->string") ;
	machine.reg[RES] = getSymbol("list->string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->string") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->string (map char-downcase (string->list string)))") ;
	FUNCTION_EXIT ("(lambda (string) (list->string (map char-downcase (string->list string))))");
	Continue_13716:
	DEBUG_TRACE("end: lambda: (lambda (string) (list->string (map char-downcase (string->list string))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string-downcase") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string-downcase (lambda (string) (list->string (map char-downcase (string->list string)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13712:
	
	pushDummyFrame(&&exit_13717) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define even\? (lambda (n) (zero\? (remainder n 2)))) **********") ;
	DEBUG_TRACE("start: def: (define even\? (lambda (n) (zero\? (remainder n 2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (zero\? (remainder n 2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13719 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13720;
	Closure_Code_13719:
	FUNCTION_ENTER("(lambda (n) (zero\? (remainder n 2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (zero\? (remainder n 2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (remainder n 2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: remainder") ;
	machine.reg[RES] = getSymbol("remainder") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: remainder") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13718) ;
	ret_from_app_13718:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (remainder n 2)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (zero\? (remainder n 2))") ;
	FUNCTION_EXIT ("(lambda (n) (zero\? (remainder n 2)))");
	Continue_13720:
	DEBUG_TRACE("end: lambda: (lambda (n) (zero\? (remainder n 2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("even\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define even\? (lambda (n) (zero\? (remainder n 2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13717:
	
	pushDummyFrame(&&exit_13721) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define odd\? (lambda (n) (not (zero\? (remainder n 2))))) **********") ;
	DEBUG_TRACE("start: def: (define odd\? (lambda (n) (not (zero\? (remainder n 2)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (not (zero\? (remainder n 2))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13724 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13725;
	Closure_Code_13724:
	FUNCTION_ENTER("(lambda (n) (not (zero\? (remainder n 2))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (not (zero\? (remainder n 2)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (zero\? (remainder n 2))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (remainder n 2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: remainder") ;
	machine.reg[RES] = getSymbol("remainder") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: remainder") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13722) ;
	ret_from_app_13722:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (remainder n 2)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13723) ;
	ret_from_app_13723:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? (remainder n 2))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not (zero\? (remainder n 2)))") ;
	FUNCTION_EXIT ("(lambda (n) (not (zero\? (remainder n 2))))");
	Continue_13725:
	DEBUG_TRACE("end: lambda: (lambda (n) (not (zero\? (remainder n 2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("odd\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define odd\? (lambda (n) (not (zero\? (remainder n 2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13721:
	
	pushDummyFrame(&&exit_13726) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define length (lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))) **********") ;
	DEBUG_TRACE("start: def: (define length (lambda (s) (if (null\? s) 0 (add1 (length (cdr s))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13732 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13733;
	Closure_Code_13732:
	FUNCTION_ENTER("(lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (null\? s) 0 (add1 (length (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13727) ;
	ret_from_app_13727:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13730;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	goto If_Done_13731;
	If_Else_13730:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (add1 (length (cdr s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (length (cdr s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13728) ;
	ret_from_app_13728:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: length") ;
	machine.reg[RES] = getSymbol("length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13729) ;
	ret_from_app_13729:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (length (cdr s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: add1") ;
	machine.reg[RES] = getSymbol("add1") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: add1") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (add1 (length (cdr s)))") ;
	If_Done_13731:

	DEBUG_TRACE("end: if: (if (null\? s) 0 (add1 (length (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))");
	Continue_13733:
	DEBUG_TRACE("end: lambda: (lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("length") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define length (lambda (s) (if (null\? s) 0 (add1 (length (cdr s))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13726:
	
	pushDummyFrame(&&exit_13734) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list (lambda args args)) **********") ;
	DEBUG_TRACE("start: def: (define list (lambda args args))") ;
	DEBUG_TRACE("start: lambda opt: (lambda args args)") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13735) ;
	goto Continue_13736 ;
	Closure_Code_13735:
	FUNCTION_ENTER("(lambda args args)") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13738:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13739 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13738 ;
	shift_frame_up_loop_end_13739:
	machine.fp += 1 ;
	goto after_frame_shift_13737 ;
	after_frame_shift_13737:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	FUNCTION_EXIT("(lambda args args)") ;
	Continue_13736:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda args args)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list (lambda args args))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13734:
	
	pushDummyFrame(&&exit_13740) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))) **********") ;
	DEBUG_TRACE("start: def: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13746 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13747;
	Closure_Code_13746:
	FUNCTION_ENTER("(lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))") ;

	DEBUG_TRACE("start: application: (zero\? i)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13741) ;
	ret_from_app_13741:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? i)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13744;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (car s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (car s)") ;
	goto If_Done_13745;
	If_Else_13744:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (list-ref (cdr s) (- i 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (- i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13742) ;
	ret_from_app_13742:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13743) ;
	ret_from_app_13743:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list-ref") ;
	machine.reg[RES] = getSymbol("list-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list-ref (cdr s) (- i 1))") ;
	If_Done_13745:

	DEBUG_TRACE("end: if: (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))") ;
	FUNCTION_EXIT ("(lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))");
	Continue_13747:
	DEBUG_TRACE("end: lambda: (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list-ref") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13740:
	
	pushDummyFrame(&&exit_13748) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list\? (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))) **********") ;
	DEBUG_TRACE("start: def: (define list\? (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f))))") ;
	DEBUG_TRACE("start: lambda: (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13755 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13756;
	Closure_Code_13755:
	FUNCTION_ENTER("(lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: or: (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f))") ;
	DEBUG_TRACE("start: application: (null\? e)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13750) ;
	ret_from_app_13750:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? e)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_13749 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (pair\? e) (list\? (cdr e)) #f)") ;

	DEBUG_TRACE("start: application: (pair\? e)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13751) ;
	ret_from_app_13751:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (pair\? e)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13753;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (list\? (cdr e))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr e)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13752) ;
	ret_from_app_13752:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr e)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list\?") ;
	machine.reg[RES] = getSymbol("list?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list\? (cdr e))") ;
	goto If_Done_13754;
	If_Else_13753:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_13754:

	DEBUG_TRACE("end: if: (if (pair\? e) (list\? (cdr e)) #f)") ;
	or_end_13749:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f))") ;
	FUNCTION_EXIT ("(lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))");
	Continue_13756:
	DEBUG_TRACE("end: lambda: (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list\? (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13748:
	
	pushDummyFrame(&&exit_13757) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define map ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f)) **********") ;
	DEBUG_TRACE("start: def: (define map ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f))") ;
	DEBUG_TRACE("start: application: ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13794 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13795;
	Closure_Code_13794:
	FUNCTION_ENTER("(lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: sequence: (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! map-list (box map-list))") ;
	DEBUG_TRACE("start: application: (box map-list)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: map-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: map-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13759) ;
	ret_from_app_13759:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box map-list)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! map-list (box map-list))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! map-one (box map-one))") ;
	DEBUG_TRACE("start: application: (box map-one)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: map-one") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13760) ;
	ret_from_app_13760:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box map-one)") ;
	*(STACK_ARGS()-1) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! map-one (box map-one))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13772 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13773;
	Closure_Code_13772:
	FUNCTION_ENTER("(lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))))") ;

	DEBUG_TRACE("start: application: (null\? (car lists))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car lists)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: lists") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: lists") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13761) ;
	ret_from_app_13761:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car lists)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13762) ;
	ret_from_app_13762:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? (car lists))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13770;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = schemeNil ;
	goto If_Done_13771;
	If_Else_13770:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: ((vector-ref map-one 0) cdr lists)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: lists") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: lists") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref map-one 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-one") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13764) ;
	ret_from_app_13764:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-one 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13763) ;
	ret_from_app_13763:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref map-one 0) cdr lists)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref map-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13766) ;
	ret_from_app_13766:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13765) ;
	ret_from_app_13765:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (apply f ((vector-ref map-one 0) car lists))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: ((vector-ref map-one 0) car lists)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: lists") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: lists") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref map-one 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-one") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13768) ;
	ret_from_app_13768:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-one 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13767) ;
	ret_from_app_13767:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref map-one 0) car lists)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13769) ;
	ret_from_app_13769:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply f ((vector-ref map-one 0) car lists))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))") ;
	If_Done_13771:

	DEBUG_TRACE("end: if: (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))))") ;
	FUNCTION_EXIT ("(lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))");
	Continue_13773:
	DEBUG_TRACE("end: lambda: (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: map-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: map-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13774) ;
	ret_from_app_13774:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13783 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13784;
	Closure_Code_13783:
	FUNCTION_ENTER("(lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13775) ;
	ret_from_app_13775:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13781;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = schemeNil ;
	goto If_Done_13782;
	If_Else_13781:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref map-one 0) f (cdr s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13776) ;
	ret_from_app_13776:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref map-one 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-one") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13778) ;
	ret_from_app_13778:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-one 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13777) ;
	ret_from_app_13777:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref map-one 0) f (cdr s))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (f (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13779) ;
	ret_from_app_13779:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13780) ;
	ret_from_app_13780:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (f (car s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))") ;
	If_Done_13782:

	DEBUG_TRACE("end: if: (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))");
	Continue_13784:
	DEBUG_TRACE("end: lambda: (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: map-one") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13785) ;
	ret_from_app_13785:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13792 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13793;
	Closure_Code_13792:
	FUNCTION_ENTER("(lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda (f . args) ((vector-ref map-list 0) f args))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13786) ;
	goto Continue_13787 ;
	Closure_Code_13786:
	FUNCTION_ENTER("(lambda (f . args) ((vector-ref map-list 0) f args))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13789:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13790 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13789 ;
	shift_frame_up_loop_end_13790:
	machine.fp += 1 ;
	goto after_frame_shift_13788 ;
	after_frame_shift_13788:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((vector-ref map-list 0) f args)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref map-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13791) ;
	ret_from_app_13791:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref map-list 0) f args)") ;
	FUNCTION_EXIT("(lambda (f . args) ((vector-ref map-list 0) f args))") ;
	Continue_13787:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (f . args) ((vector-ref map-list 0) f args))") ;
	FUNCTION_EXIT ("(lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))");
	Continue_13793:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))") ;
	FUNCTION_EXIT ("(lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))))");
	Continue_13795:
	DEBUG_TRACE("end: lambda: (lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13758) ;
	ret_from_app_13758:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("map") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define map ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13757:
	
	pushDummyFrame(&&exit_13796) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define member\? (lambda (a s) (ormap (lambda (b) (eq\? a b)) s))) **********") ;
	DEBUG_TRACE("start: def: (define member\? (lambda (a s) (ormap (lambda (b) (eq\? a b)) s)))") ;
	DEBUG_TRACE("start: lambda: (lambda (a s) (ormap (lambda (b) (eq\? a b)) s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13799 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13800;
	Closure_Code_13799:
	FUNCTION_ENTER("(lambda (a s) (ormap (lambda (b) (eq\? a b)) s))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (ormap (lambda (b) (eq\? a b)) s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: lambda: (lambda (b) (eq\? a b))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13797 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13798;
	Closure_Code_13797:
	FUNCTION_ENTER("(lambda (b) (eq\? a b))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (eq\? a b)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: a") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (eq\? a b)") ;
	FUNCTION_EXIT ("(lambda (b) (eq\? a b))");
	Continue_13798:
	DEBUG_TRACE("end: lambda: (lambda (b) (eq\? a b))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: ormap") ;
	machine.reg[RES] = getSymbol("ormap") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ormap") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (ormap (lambda (b) (eq\? a b)) s)") ;
	FUNCTION_EXIT ("(lambda (a s) (ormap (lambda (b) (eq\? a b)) s))");
	Continue_13800:
	DEBUG_TRACE("end: lambda: (lambda (a s) (ormap (lambda (b) (eq\? a b)) s))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("member\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define member\? (lambda (a s) (ormap (lambda (b) (eq\? a b)) s)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13796:
	
	pushDummyFrame(&&exit_13801) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define negative\? (lambda (n) (< n 0))) **********") ;
	DEBUG_TRACE("start: def: (define negative\? (lambda (n) (< n 0)))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (< n 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13802 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13803;
	Closure_Code_13802:
	FUNCTION_ENTER("(lambda (n) (< n 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (< n 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: <") ;
	machine.reg[RES] = getSymbol("<") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: <") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (< n 0)") ;
	FUNCTION_EXIT ("(lambda (n) (< n 0))");
	Continue_13803:
	DEBUG_TRACE("end: lambda: (lambda (n) (< n 0))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("negative\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define negative\? (lambda (n) (< n 0)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13801:
	
	pushDummyFrame(&&exit_13804) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define positive\? (lambda (n) (> n 0))) **********") ;
	DEBUG_TRACE("start: def: (define positive\? (lambda (n) (> n 0)))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (> n 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13805 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13806;
	Closure_Code_13805:
	FUNCTION_ENTER("(lambda (n) (> n 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (> n 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: >") ;
	machine.reg[RES] = getSymbol(">") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: >") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (> n 0)") ;
	FUNCTION_EXIT ("(lambda (n) (> n 0))");
	Continue_13806:
	DEBUG_TRACE("end: lambda: (lambda (n) (> n 0))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("positive\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define positive\? (lambda (n) (> n 0)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13804:
	
	pushDummyFrame(&&exit_13807) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define zero\? (lambda (x) (= x 0))) **********") ;
	DEBUG_TRACE("start: def: (define zero\? (lambda (x) (= x 0)))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (= x 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13808 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13809;
	Closure_Code_13808:
	FUNCTION_ENTER("(lambda (x) (= x 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (= x 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (= x 0)") ;
	FUNCTION_EXIT ("(lambda (x) (= x 0))");
	Continue_13809:
	DEBUG_TRACE("end: lambda: (lambda (x) (= x 0))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("zero\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define zero\? (lambda (x) (= x 0)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13807:
	
	pushDummyFrame(&&exit_13810) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define vector (lambda args (list->vector args))) **********") ;
	DEBUG_TRACE("start: def: (define vector (lambda args (list->vector args)))") ;
	DEBUG_TRACE("start: lambda opt: (lambda args (list->vector args))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13811) ;
	goto Continue_13812 ;
	Closure_Code_13811:
	FUNCTION_ENTER("(lambda args (list->vector args))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13814:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13815 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13814 ;
	shift_frame_up_loop_end_13815:
	machine.fp += 1 ;
	goto after_frame_shift_13813 ;
	after_frame_shift_13813:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (list->vector args)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->vector") ;
	machine.reg[RES] = getSymbol("list->vector") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->vector") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->vector args)") ;
	FUNCTION_EXIT("(lambda args (list->vector args))") ;
	Continue_13812:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda args (list->vector args))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("vector") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define vector (lambda args (list->vector args)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13810:
	
	pushDummyFrame(&&exit_13816) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define ormap (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define ormap (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f)))") ;
	DEBUG_TRACE("start: lambda opt: (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13817) ;
	goto Continue_13818 ;
	Closure_Code_13817:
	FUNCTION_ENTER("(lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13820:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13821 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13820 ;
	shift_frame_up_loop_end_13821:
	machine.fp += 1 ;
	goto after_frame_shift_13819 ;
	after_frame_shift_13819:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13838 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13839;
	Closure_Code_13838:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13822) ;
	ret_from_app_13822:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13832 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13833;
	Closure_Code_13832:
	FUNCTION_ENTER("(lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f)") ;

	DEBUG_TRACE("start: application: (pair\? (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13823) ;
	ret_from_app_13823:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13824) ;
	ret_from_app_13824:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (pair\? (car s))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13830;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: or: (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s)))") ;
	DEBUG_TRACE("start: application: (apply f (map car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (map car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13826) ;
	ret_from_app_13826:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: f") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: f") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13827) ;
	ret_from_app_13827:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply f (map car s))") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_13825 ; /* end the 'or' if true */
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (map cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (map cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13828) ;
	ret_from_app_13828:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13829) ;
	ret_from_app_13829:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (map cdr s))") ;
	or_end_13825:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s)))") ;
	goto If_Done_13831;
	If_Else_13830:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_13831:

	DEBUG_TRACE("end: if: (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f)") ;
	FUNCTION_EXIT ("(lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))");
	Continue_13833:
	DEBUG_TRACE("end: lambda: (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13834) ;
	ret_from_app_13834:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f)))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) s)))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13836 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13837;
	Closure_Code_13836:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) s))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var bound: s") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13835) ;
	ret_from_app_13835:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s)") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) s))");
	Continue_13837:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) s))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) s)))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s)))))");
	Continue_13839:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f)") ;
	FUNCTION_EXIT("(lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	Continue_13818:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("ormap") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define ormap (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (pair\? (car s)) (or (apply f (map car s)) ((vector-ref loop 0) (map cdr s))) #f))) ((lambda () ((vector-ref loop 0) s))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13816:
	
	pushDummyFrame(&&exit_13840) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define andmap (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define andmap (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f)))") ;
	DEBUG_TRACE("start: lambda opt: (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_13841) ;
	goto Continue_13842 ;
	Closure_Code_13841:
	FUNCTION_ENTER("(lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_13844:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_13845 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_13844 ;
	shift_frame_up_loop_end_13845:
	machine.fp += 1 ;
	goto after_frame_shift_13843 ;
	after_frame_shift_13843:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13862 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13863;
	Closure_Code_13862:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13846) ;
	ret_from_app_13846:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13856 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13857;
	Closure_Code_13856:
	FUNCTION_ENTER("(lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: or: (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f))") ;
	DEBUG_TRACE("start: application: (null\? (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13848) ;
	ret_from_app_13848:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13849) ;
	ret_from_app_13849:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? (car s))") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_13847 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)") ;

	DEBUG_TRACE("start: application: (apply f (map car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (map car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13850) ;
	ret_from_app_13850:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: f") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: f") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13851) ;
	ret_from_app_13851:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply f (map car s))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13854;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (map cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (map cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13852) ;
	ret_from_app_13852:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13853) ;
	ret_from_app_13853:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (map cdr s))") ;
	goto If_Done_13855;
	If_Else_13854:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_13855:

	DEBUG_TRACE("end: if: (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)") ;
	or_end_13847:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f))") ;
	FUNCTION_EXIT ("(lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))");
	Continue_13857:
	DEBUG_TRACE("end: lambda: (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13858) ;
	ret_from_app_13858:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) s)))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13860 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13861;
	Closure_Code_13860:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) s))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var bound: s") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13859) ;
	ret_from_app_13859:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s)") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) s))");
	Continue_13861:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) s))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) s)))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s)))))");
	Continue_13863:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f)") ;
	FUNCTION_EXIT("(lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	Continue_13842:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("andmap") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define andmap (lambda (f . s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (or (null\? (car s)) (if (apply f (map car s)) ((vector-ref loop 0) (map cdr s)) #f)))) ((lambda () ((vector-ref loop 0) s))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13840:
	
	pushDummyFrame(&&exit_13864) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define string->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13884 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13885;
	Closure_Code_13884:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13866) ;
	ret_from_app_13866:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13874 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13875;
	Closure_Code_13874:
	FUNCTION_ENTER("(lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: if: (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s)))") ;

	DEBUG_TRACE("start: application: (= n -1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(-1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13867) ;
	ret_from_app_13867:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= n -1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13872;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	goto If_Done_13873;
	If_Else_13872:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cons (string-ref str n) s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string-ref str n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-ref") ;
	machine.reg[RES] = getSymbol("string-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13868) ;
	ret_from_app_13868:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-ref str n)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13869) ;
	ret_from_app_13869:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cons (string-ref str n) s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- n 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13870) ;
	ret_from_app_13870:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- n 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13871) ;
	ret_from_app_13871:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))") ;
	If_Done_13873:

	DEBUG_TRACE("end: if: (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s)))") ;
	FUNCTION_EXIT ("(lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))");
	Continue_13875:
	DEBUG_TRACE("end: lambda: (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13876) ;
	ret_from_app_13876:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13882 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13883;
	Closure_Code_13882:
	FUNCTION_ENTER("(lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda: (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13880 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13881;
	Closure_Code_13880:
	FUNCTION_ENTER("(lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) str (- (string-length str) 1) \'())") ;
	/* Start of Pushing args */
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- (string-length str) 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string-length str)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-length") ;
	machine.reg[RES] = getSymbol("string-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13877) ;
	ret_from_app_13877:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-length str)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13878) ;
	ret_from_app_13878:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (string-length str) 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13879) ;
	ret_from_app_13879:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) str (- (string-length str) 1) \'())") ;
	FUNCTION_EXIT ("(lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))");
	Continue_13881:
	DEBUG_TRACE("end: lambda: (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))") ;
	FUNCTION_EXIT ("(lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))");
	Continue_13883:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))))");
	Continue_13885:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13865) ;
	ret_from_app_13865:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string->list") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13864:
	
	pushDummyFrame(&&exit_13886) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string=\? (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string=\? (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13898 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13899;
	Closure_Code_13898:
	FUNCTION_ENTER("(lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (string-length str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-length") ;
	machine.reg[RES] = getSymbol("string-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13887) ;
	ret_from_app_13887:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-length str2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string-length str1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-length") ;
	machine.reg[RES] = getSymbol("string-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13888) ;
	ret_from_app_13888:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-length str1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13896 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13897;
	Closure_Code_13896:
	FUNCTION_ENTER("(lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)") ;

	DEBUG_TRACE("start: application: (= n1 n2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13889) ;
	ret_from_app_13889:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= n1 n2)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13894;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (string->list str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: str2") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13890) ;
	ret_from_app_13890:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list str2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string->list str1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: str1") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13891) ;
	ret_from_app_13891:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list str1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (s1 s2) (andmap char=\? s1 s2))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13892 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13893;
	Closure_Code_13892:
	FUNCTION_ENTER("(lambda (s1 s2) (andmap char=\? s1 s2))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (andmap char=\? s1 s2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: char=\?") ;
	machine.reg[RES] = getSymbol("char=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char=\?") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: andmap") ;
	machine.reg[RES] = getSymbol("andmap") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: andmap") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (andmap char=\? s1 s2)") ;
	FUNCTION_EXIT ("(lambda (s1 s2) (andmap char=\? s1 s2))");
	Continue_13893:
	DEBUG_TRACE("end: lambda: (lambda (s1 s2) (andmap char=\? s1 s2))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2))") ;
	goto If_Done_13895;
	If_Else_13894:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_13895:

	DEBUG_TRACE("end: if: (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)") ;
	FUNCTION_EXIT ("(lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f))");
	Continue_13897:
	DEBUG_TRACE("end: lambda: (lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2))") ;
	FUNCTION_EXIT ("(lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))");
	Continue_13899:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string=\? (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (andmap char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13886:
	
	pushDummyFrame(&&exit_13900) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string<\? (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string<\? (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13928 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13929;
	Closure_Code_13928:
	FUNCTION_ENTER("(lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13926 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13927;
	Closure_Code_13926:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13901) ;
	ret_from_app_13901:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13918 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13919;
	Closure_Code_13918:
	FUNCTION_ENTER("(lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))))") ;

	DEBUG_TRACE("start: application: (null\? s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13902) ;
	ret_from_app_13902:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13916;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (pair\? s2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (pair\? s2)") ;
	goto If_Done_13917;
	If_Else_13916:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))") ;

	DEBUG_TRACE("start: application: (null\? s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13903) ;
	ret_from_app_13903:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s2)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13914;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_13915;
	If_Else_13914:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))") ;

	DEBUG_TRACE("start: application: (char=\? (car s1) (car s2))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13904) ;
	ret_from_app_13904:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13905) ;
	ret_from_app_13905:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s1)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char=\?") ;
	machine.reg[RES] = getSymbol("char=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13906) ;
	ret_from_app_13906:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char=\? (car s1) (car s2))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13912;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (cdr s1) (cdr s2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13907) ;
	ret_from_app_13907:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13908) ;
	ret_from_app_13908:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13909) ;
	ret_from_app_13909:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (cdr s1) (cdr s2))") ;
	goto If_Done_13913;
	If_Else_13912:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (char<\? (car s1) (car s2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (car s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13910) ;
	ret_from_app_13910:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13911) ;
	ret_from_app_13911:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<\?") ;
	machine.reg[RES] = getSymbol("char<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<\? (car s1) (car s2))") ;
	If_Done_13913:

	DEBUG_TRACE("end: if: (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))") ;
	If_Done_13915:

	DEBUG_TRACE("end: if: (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))") ;
	If_Done_13917:

	DEBUG_TRACE("end: if: (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))))") ;
	FUNCTION_EXIT ("(lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))");
	Continue_13919:
	DEBUG_TRACE("end: lambda: (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13920) ;
	ret_from_app_13920:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13924 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13925;
	Closure_Code_13924:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (string->list str1) (string->list str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (string->list str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: str2") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13921) ;
	ret_from_app_13921:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list str2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string->list str1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: str1") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13922) ;
	ret_from_app_13922:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list str1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13923) ;
	ret_from_app_13923:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (string->list str1) (string->list str2))") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))");
	Continue_13925:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))))");
	Continue_13927:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f)") ;
	FUNCTION_EXIT ("(lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))");
	Continue_13929:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string<\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string<\? (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13900:
	
	pushDummyFrame(&&exit_13930) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string>\? (lambda (str1 str2) (binary-string<\? str2 str1))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string>\? (lambda (str1 str2) (binary-string<\? str2 str1)))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) (binary-string<\? str2 str1))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13931 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13932;
	Closure_Code_13931:
	FUNCTION_ENTER("(lambda (str1 str2) (binary-string<\? str2 str1))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (binary-string<\? str2 str1)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: str1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str1") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str2") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-string<\?") ;
	machine.reg[RES] = getSymbol("binary-string<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-string<\? str2 str1)") ;
	FUNCTION_EXIT ("(lambda (str1 str2) (binary-string<\? str2 str1))");
	Continue_13932:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) (binary-string<\? str2 str1))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string>\? (lambda (str1 str2) (binary-string<\? str2 str1)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13930:
	
	pushDummyFrame(&&exit_13933) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string<=\? (lambda (str1 str2) (not (binary-string>\? str1 str2)))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string<=\? (lambda (str1 str2) (not (binary-string>\? str1 str2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) (not (binary-string>\? str1 str2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13935 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13936;
	Closure_Code_13935:
	FUNCTION_ENTER("(lambda (str1 str2) (not (binary-string>\? str1 str2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (not (binary-string>\? str1 str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (binary-string>\? str1 str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-string>\?") ;
	machine.reg[RES] = getSymbol("binary-string>?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string>\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13934) ;
	ret_from_app_13934:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-string>\? str1 str2)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not (binary-string>\? str1 str2))") ;
	FUNCTION_EXIT ("(lambda (str1 str2) (not (binary-string>\? str1 str2)))");
	Continue_13936:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) (not (binary-string>\? str1 str2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string<=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string<=\? (lambda (str1 str2) (not (binary-string>\? str1 str2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13933:
	
	pushDummyFrame(&&exit_13937) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string>=\? (lambda (str1 str2) (not (binary-string<\? str1 str2)))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string>=\? (lambda (str1 str2) (not (binary-string<\? str1 str2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) (not (binary-string<\? str1 str2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13939 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13940;
	Closure_Code_13939:
	FUNCTION_ENTER("(lambda (str1 str2) (not (binary-string<\? str1 str2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (not (binary-string<\? str1 str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (binary-string<\? str1 str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-string<\?") ;
	machine.reg[RES] = getSymbol("binary-string<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13938) ;
	ret_from_app_13938:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-string<\? str1 str2)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not (binary-string<\? str1 str2))") ;
	FUNCTION_EXIT ("(lambda (str1 str2) (not (binary-string<\? str1 str2)))");
	Continue_13940:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) (not (binary-string<\? str1 str2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string>=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string>=\? (lambda (str1 str2) (not (binary-string<\? str1 str2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13937:
	
	pushDummyFrame(&&exit_13941) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string=\? (order binary-string=\?)) **********") ;
	DEBUG_TRACE("start: def: (define string=\? (order binary-string=\?))") ;
	DEBUG_TRACE("start: application: (order binary-string=\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string=\?") ;
	machine.reg[RES] = getSymbol("binary-string=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string=\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13942) ;
	ret_from_app_13942:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string=\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string=\? (order binary-string=\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13941:
	
	pushDummyFrame(&&exit_13943) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string<\? (order binary-string<\?)) **********") ;
	DEBUG_TRACE("start: def: (define string<\? (order binary-string<\?))") ;
	DEBUG_TRACE("start: application: (order binary-string<\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string<\?") ;
	machine.reg[RES] = getSymbol("binary-string<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string<\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13944) ;
	ret_from_app_13944:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string<\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string<\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string<\? (order binary-string<\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13943:
	
	pushDummyFrame(&&exit_13945) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string>\? (order binary-string>\?)) **********") ;
	DEBUG_TRACE("start: def: (define string>\? (order binary-string>\?))") ;
	DEBUG_TRACE("start: application: (order binary-string>\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string>\?") ;
	machine.reg[RES] = getSymbol("binary-string>?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string>\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13946) ;
	ret_from_app_13946:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string>\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string>\? (order binary-string>\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13945:
	
	pushDummyFrame(&&exit_13947) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string<=\? (order binary-string<=\?)) **********") ;
	DEBUG_TRACE("start: def: (define string<=\? (order binary-string<=\?))") ;
	DEBUG_TRACE("start: application: (order binary-string<=\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string<=\?") ;
	machine.reg[RES] = getSymbol("binary-string<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string<=\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13948) ;
	ret_from_app_13948:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string<=\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string<=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string<=\? (order binary-string<=\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13947:
	
	pushDummyFrame(&&exit_13949) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string>=\? (order binary-string>=\?)) **********") ;
	DEBUG_TRACE("start: def: (define string>=\? (order binary-string>=\?))") ;
	DEBUG_TRACE("start: application: (order binary-string>=\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string>=\?") ;
	machine.reg[RES] = getSymbol("binary-string>=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string>=\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13950) ;
	ret_from_app_13950:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string>=\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string>=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string>=\? (order binary-string>=\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13949:
	
	pushDummyFrame(&&exit_13951) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define vector->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define vector->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13971 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13972;
	Closure_Code_13971:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13953) ;
	ret_from_app_13953:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13961 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13962;
	Closure_Code_13961:
	FUNCTION_ENTER("(lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: if: (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s)))") ;

	DEBUG_TRACE("start: application: (= n -1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(-1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13954) ;
	ret_from_app_13954:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= n -1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13959;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	goto If_Done_13960;
	If_Else_13959:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cons (vector-ref v n) s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-ref v n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13955) ;
	ret_from_app_13955:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref v n)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13956) ;
	ret_from_app_13956:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cons (vector-ref v n) s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- n 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13957) ;
	ret_from_app_13957:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- n 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13958) ;
	ret_from_app_13958:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))") ;
	If_Done_13960:

	DEBUG_TRACE("end: if: (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s)))") ;
	FUNCTION_EXIT ("(lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))");
	Continue_13962:
	DEBUG_TRACE("end: lambda: (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13963) ;
	ret_from_app_13963:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13969 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13970;
	Closure_Code_13969:
	FUNCTION_ENTER("(lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda: (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13967 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13968;
	Closure_Code_13967:
	FUNCTION_ENTER("(lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) v (- (vector-length v) 1) \'())") ;
	/* Start of Pushing args */
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- (vector-length v) 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-length v)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-length") ;
	machine.reg[RES] = getSymbol("vector-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13964) ;
	ret_from_app_13964:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-length v)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13965) ;
	ret_from_app_13965:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (vector-length v) 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13966) ;
	ret_from_app_13966:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) v (- (vector-length v) 1) \'())") ;
	FUNCTION_EXIT ("(lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))");
	Continue_13968:
	DEBUG_TRACE("end: lambda: (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))") ;
	FUNCTION_EXIT ("(lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))");
	Continue_13970:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))))");
	Continue_13972:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13952) ;
	ret_from_app_13952:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("vector->list") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define vector->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13951:
	
	pushDummyFrame(&&exit_13973) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list->string (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))) **********") ;
	DEBUG_TRACE("start: def: (define list->string (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13997 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13998;
	Closure_Code_13997:
	FUNCTION_ENTER("(lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (length s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: length") ;
	machine.reg[RES] = getSymbol("length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13974) ;
	ret_from_app_13974:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (length s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13995 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13996;
	Closure_Code_13995:
	FUNCTION_ENTER("(lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (make-string n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: make-string") ;
	machine.reg[RES] = getSymbol("make-string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: make-string") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13975) ;
	ret_from_app_13975:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (make-string n)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13993 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13994;
	Closure_Code_13993:
	FUNCTION_ENTER("(lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13991 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13992;
	Closure_Code_13991:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13976) ;
	ret_from_app_13976:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13985 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13986;
	Closure_Code_13985:
	FUNCTION_ENTER("(lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))") ;

	DEBUG_TRACE("start: application: (= i n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: n") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 2, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13977) ;
	ret_from_app_13977:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= i n)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_13983;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: str") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str") ;
	goto If_Done_13984;
	If_Else_13983:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: sequence: (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (string-set! str i (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13978) ;
	ret_from_app_13978:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: str") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-set!") ;
	machine.reg[RES] = getSymbol("string-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13979) ;
	ret_from_app_13979:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-set! str i (car s))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (cdr s) (+ i 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (+ i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: +") ;
	machine.reg[RES] = getSymbol("+") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: +") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13980) ;
	ret_from_app_13980:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (+ i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_13981) ;
	ret_from_app_13981:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13982) ;
	ret_from_app_13982:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (cdr s) (+ i 1))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))") ;
	If_Done_13984:

	DEBUG_TRACE("end: if: (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))") ;
	FUNCTION_EXIT ("(lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))");
	Continue_13986:
	DEBUG_TRACE("end: lambda: (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_13987) ;
	ret_from_app_13987:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) s 0)))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) s 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_13989 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_13990;
	Closure_Code_13989:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) s 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: s") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 3, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_13988) ;
	ret_from_app_13988:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s 0)") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) s 0))");
	Continue_13990:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) s 0))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) s 0)))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))");
	Continue_13992:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)") ;
	FUNCTION_EXIT ("(lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))");
	Continue_13994:
	DEBUG_TRACE("end: lambda: (lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))") ;
	FUNCTION_EXIT ("(lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n)))");
	Continue_13996:
	DEBUG_TRACE("end: lambda: (lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s))") ;
	FUNCTION_EXIT ("(lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))");
	Continue_13998:
	DEBUG_TRACE("end: lambda: (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list->string") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list->string (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13973:
	
	pushDummyFrame(&&exit_13999) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list->vector (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))) **********") ;
	DEBUG_TRACE("start: def: (define list->vector (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14023 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14024;
	Closure_Code_14023:
	FUNCTION_ENTER("(lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (length s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: length") ;
	machine.reg[RES] = getSymbol("length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14000) ;
	ret_from_app_14000:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (length s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14021 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14022;
	Closure_Code_14021:
	FUNCTION_ENTER("(lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (make-vector n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: make-vector") ;
	machine.reg[RES] = getSymbol("make-vector") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: make-vector") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14001) ;
	ret_from_app_14001:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (make-vector n)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14019 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14020;
	Closure_Code_14019:
	FUNCTION_ENTER("(lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14017 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14018;
	Closure_Code_14017:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14002) ;
	ret_from_app_14002:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14011 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14012;
	Closure_Code_14011:
	FUNCTION_ENTER("(lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))") ;

	DEBUG_TRACE("start: application: (= i n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: n") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 2, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14003) ;
	ret_from_app_14003:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= i n)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14009;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: v") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: v") ;
	goto If_Done_14010;
	If_Else_14009:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: sequence: (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! v i (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14004) ;
	ret_from_app_14004:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: v") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: v") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_14005) ;
	ret_from_app_14005:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! v i (car s))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (cdr s) (+ i 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (+ i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: +") ;
	machine.reg[RES] = getSymbol("+") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: +") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14006) ;
	ret_from_app_14006:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (+ i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14007) ;
	ret_from_app_14007:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14008) ;
	ret_from_app_14008:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (cdr s) (+ i 1))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))") ;
	If_Done_14010:

	DEBUG_TRACE("end: if: (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))") ;
	FUNCTION_EXIT ("(lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))");
	Continue_14012:
	DEBUG_TRACE("end: lambda: (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_14013) ;
	ret_from_app_14013:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) s 0)))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) s 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14015 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14016;
	Closure_Code_14015:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) s 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: s") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 3, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14014) ;
	ret_from_app_14014:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s 0)") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) s 0))");
	Continue_14016:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) s 0))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) s 0)))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))");
	Continue_14018:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)") ;
	FUNCTION_EXIT ("(lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))");
	Continue_14020:
	DEBUG_TRACE("end: lambda: (lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))") ;
	FUNCTION_EXIT ("(lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n)))");
	Continue_14022:
	DEBUG_TRACE("end: lambda: (lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s))") ;
	FUNCTION_EXIT ("(lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))");
	Continue_14024:
	DEBUG_TRACE("end: lambda: (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list->vector") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list->vector (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_13999:
	
	pushDummyFrame(&&exit_14025) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define member (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))) **********") ;
	DEBUG_TRACE("start: def: (define member (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14034 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14035;
	Closure_Code_14034:
	FUNCTION_ENTER("(lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14026) ;
	ret_from_app_14026:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14032;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_14033;
	If_Else_14032:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (equal\? (car s) a) s (member a (cdr s)))") ;

	DEBUG_TRACE("start: application: (equal\? (car s) a)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14027) ;
	ret_from_app_14027:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14028) ;
	ret_from_app_14028:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (equal\? (car s) a)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14030;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	goto If_Done_14031;
	If_Else_14030:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (member a (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14029) ;
	ret_from_app_14029:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: member") ;
	machine.reg[RES] = getSymbol("member") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: member") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (member a (cdr s))") ;
	If_Done_14031:

	DEBUG_TRACE("end: if: (if (equal\? (car s) a) s (member a (cdr s)))") ;
	If_Done_14033:

	DEBUG_TRACE("end: if: (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))");
	Continue_14035:
	DEBUG_TRACE("end: lambda: (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("member") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define member (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14025:
	
	pushDummyFrame(&&exit_14036) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define assoc (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))) **********") ;
	DEBUG_TRACE("start: def: (define assoc (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14045 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14046;
	Closure_Code_14045:
	FUNCTION_ENTER("(lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14037) ;
	ret_from_app_14037:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14043;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_14044;
	If_Else_14043:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))") ;

	DEBUG_TRACE("start: application: (eq\? (caar s) a)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (caar s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: caar") ;
	machine.reg[RES] = getSymbol("caar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caar") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14038) ;
	ret_from_app_14038:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (caar s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14039) ;
	ret_from_app_14039:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (eq\? (caar s) a)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14041;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (car s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (car s)") ;
	goto If_Done_14042;
	If_Else_14041:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (assoc a (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14040) ;
	ret_from_app_14040:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: assoc") ;
	machine.reg[RES] = getSymbol("assoc") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: assoc") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (assoc a (cdr s))") ;
	If_Done_14042:

	DEBUG_TRACE("end: if: (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))") ;
	If_Done_14044:

	DEBUG_TRACE("end: if: (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))");
	Continue_14046:
	DEBUG_TRACE("end: lambda: (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("assoc") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define assoc (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14036:
	
	pushDummyFrame(&&exit_14047) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define equal\? (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))) **********") ;
	DEBUG_TRACE("start: def: (define equal\? (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14118 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14119;
	Closure_Code_14118:
	FUNCTION_ENTER("(lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))))") ;

	DEBUG_TRACE("start: if: (if (pair\? e1) (pair\? e2) #f)") ;

	DEBUG_TRACE("start: application: (pair\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14048) ;
	ret_from_app_14048:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (pair\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14050;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (pair\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14049) ;
	ret_from_app_14049:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (pair\? e2)") ;
	goto If_Done_14051;
	If_Else_14050:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14051:

	DEBUG_TRACE("end: if: (if (pair\? e1) (pair\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14116;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: if: (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f)") ;

	DEBUG_TRACE("start: application: (equal\? (car e1) (car e2))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14052) ;
	ret_from_app_14052:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car e2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14053) ;
	ret_from_app_14053:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car e1)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14054) ;
	ret_from_app_14054:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (equal\? (car e1) (car e2))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14057;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (equal\? (cdr e1) (cdr e2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14055) ;
	ret_from_app_14055:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr e2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14056) ;
	ret_from_app_14056:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr e1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (equal\? (cdr e1) (cdr e2))") ;
	goto If_Done_14058;
	If_Else_14057:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14058:

	DEBUG_TRACE("end: if: (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f)") ;
	goto If_Done_14117;
	If_Else_14116:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))") ;

	DEBUG_TRACE("start: if: (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f)") ;

	DEBUG_TRACE("start: application: (vector\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector\?") ;
	machine.reg[RES] = getSymbol("vector?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14059) ;
	ret_from_app_14059:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14066;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: if: (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f)") ;

	DEBUG_TRACE("start: application: (vector\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector\?") ;
	machine.reg[RES] = getSymbol("vector?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14060) ;
	ret_from_app_14060:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector\? e2)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14064;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (= (vector-length e1) (vector-length e2))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (vector-length e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-length") ;
	machine.reg[RES] = getSymbol("vector-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14061) ;
	ret_from_app_14061:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-length e2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-length e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-length") ;
	machine.reg[RES] = getSymbol("vector-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14062) ;
	ret_from_app_14062:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-length e1)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14063) ;
	ret_from_app_14063:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= (vector-length e1) (vector-length e2))") ;
	goto If_Done_14065;
	If_Else_14064:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14065:

	DEBUG_TRACE("end: if: (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f)") ;
	goto If_Done_14067;
	If_Else_14066:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14067:

	DEBUG_TRACE("end: if: (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14114;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (equal\? (vector->list e1) (vector->list e2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (vector->list e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector->list") ;
	machine.reg[RES] = getSymbol("vector->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14068) ;
	ret_from_app_14068:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector->list e2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector->list e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector->list") ;
	machine.reg[RES] = getSymbol("vector->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14069) ;
	ret_from_app_14069:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector->list e1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (equal\? (vector->list e1) (vector->list e2))") ;
	goto If_Done_14115;
	If_Else_14114:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))") ;

	DEBUG_TRACE("start: if: (if (null\? e1) (null\? e2) #f)") ;

	DEBUG_TRACE("start: application: (null\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14070) ;
	ret_from_app_14070:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14072;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (null\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14071) ;
	ret_from_app_14071:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? e2)") ;
	goto If_Done_14073;
	If_Else_14072:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14073:

	DEBUG_TRACE("end: if: (if (null\? e1) (null\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14112;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(TRUE);
	goto If_Done_14113;
	If_Else_14112:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))") ;

	DEBUG_TRACE("start: if: (if (boolean\? e1) (boolean\? e2) #f)") ;

	DEBUG_TRACE("start: application: (boolean\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: boolean\?") ;
	machine.reg[RES] = getSymbol("boolean?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: boolean\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14074) ;
	ret_from_app_14074:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (boolean\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14076;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (boolean\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: boolean\?") ;
	machine.reg[RES] = getSymbol("boolean?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: boolean\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14075) ;
	ret_from_app_14075:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (boolean\? e2)") ;
	goto If_Done_14077;
	If_Else_14076:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14077:

	DEBUG_TRACE("end: if: (if (boolean\? e1) (boolean\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14110;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: if: (if e1 e2 #f)") ;

	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14078;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	goto If_Done_14079;
	If_Else_14078:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14079:

	DEBUG_TRACE("end: if: (if e1 e2 #f)") ;
	goto If_Done_14111;
	If_Else_14110:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))") ;

	DEBUG_TRACE("start: if: (if (char\? e1) (char\? e2) #f)") ;

	DEBUG_TRACE("start: application: (char\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char\?") ;
	machine.reg[RES] = getSymbol("char?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14080) ;
	ret_from_app_14080:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14082;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (char\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char\?") ;
	machine.reg[RES] = getSymbol("char?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14081) ;
	ret_from_app_14081:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char\? e2)") ;
	goto If_Done_14083;
	If_Else_14082:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14083:

	DEBUG_TRACE("end: if: (if (char\? e1) (char\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14108;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (char=\? e1 e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char=\?") ;
	machine.reg[RES] = getSymbol("char=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char=\? e1 e2)") ;
	goto If_Done_14109;
	If_Else_14108:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))") ;

	DEBUG_TRACE("start: if: (if (number\? e1) (number\? e2) #f)") ;

	DEBUG_TRACE("start: application: (number\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: number\?") ;
	machine.reg[RES] = getSymbol("number?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: number\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14084) ;
	ret_from_app_14084:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (number\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14086;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (number\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: number\?") ;
	machine.reg[RES] = getSymbol("number?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: number\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14085) ;
	ret_from_app_14085:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (number\? e2)") ;
	goto If_Done_14087;
	If_Else_14086:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14087:

	DEBUG_TRACE("end: if: (if (number\? e1) (number\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14106;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (= e1 e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (= e1 e2)") ;
	goto If_Done_14107;
	If_Else_14106:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))") ;

	DEBUG_TRACE("start: if: (if (string\? e1) (string\? e2) #f)") ;

	DEBUG_TRACE("start: application: (string\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string\?") ;
	machine.reg[RES] = getSymbol("string?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14088) ;
	ret_from_app_14088:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14090;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (string\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string\?") ;
	machine.reg[RES] = getSymbol("string?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14089) ;
	ret_from_app_14089:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string\? e2)") ;
	goto If_Done_14091;
	If_Else_14090:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14091:

	DEBUG_TRACE("end: if: (if (string\? e1) (string\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14104;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (string=\? e1 e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: string=\?") ;
	machine.reg[RES] = getSymbol("string=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (string=\? e1 e2)") ;
	goto If_Done_14105;
	If_Else_14104:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))") ;

	DEBUG_TRACE("start: if: (if (symbol\? e1) (symbol\? e2) #f)") ;

	DEBUG_TRACE("start: application: (symbol\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: symbol\?") ;
	machine.reg[RES] = getSymbol("symbol?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: symbol\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14092) ;
	ret_from_app_14092:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (symbol\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14094;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (symbol\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: symbol\?") ;
	machine.reg[RES] = getSymbol("symbol?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: symbol\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14093) ;
	ret_from_app_14093:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (symbol\? e2)") ;
	goto If_Done_14095;
	If_Else_14094:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14095:

	DEBUG_TRACE("end: if: (if (symbol\? e1) (symbol\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14102;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (eq\? e1 e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (eq\? e1 e2)") ;
	goto If_Done_14103;
	If_Else_14102:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (void\? e1) (void\? e2) #f) #t #f)") ;

	DEBUG_TRACE("start: if: (if (void\? e1) (void\? e2) #f)") ;

	DEBUG_TRACE("start: application: (void\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: void\?") ;
	machine.reg[RES] = getSymbol("void?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: void\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14096) ;
	ret_from_app_14096:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (void\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14098;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (void\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: void\?") ;
	machine.reg[RES] = getSymbol("void?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: void\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14097) ;
	ret_from_app_14097:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (void\? e2)") ;
	goto If_Done_14099;
	If_Else_14098:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14099:

	DEBUG_TRACE("end: if: (if (void\? e1) (void\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14100;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(TRUE);
	goto If_Done_14101;
	If_Else_14100:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_14101:

	DEBUG_TRACE("end: if: (if (if (void\? e1) (void\? e2) #f) #t #f)") ;
	If_Done_14103:

	DEBUG_TRACE("end: if: (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))") ;
	If_Done_14105:

	DEBUG_TRACE("end: if: (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))") ;
	If_Done_14107:

	DEBUG_TRACE("end: if: (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))") ;
	If_Done_14109:

	DEBUG_TRACE("end: if: (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))") ;
	If_Done_14111:

	DEBUG_TRACE("end: if: (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))") ;
	If_Done_14113:

	DEBUG_TRACE("end: if: (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))") ;
	If_Done_14115:

	DEBUG_TRACE("end: if: (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))") ;
	If_Done_14117:

	DEBUG_TRACE("end: if: (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))))") ;
	FUNCTION_EXIT ("(lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))");
	Continue_14119:
	DEBUG_TRACE("end: lambda: (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("equal\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define equal\? (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (if e1 e2 #f) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14047:
	
	pushDummyFrame(&&exit_14120) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define void ((lambda (void-object) (lambda () void-object)) (if #f #f \'void))) **********") ;
	DEBUG_TRACE("start: def: (define void ((lambda (void-object) (lambda () void-object)) (if #f #f \'void)))") ;
	DEBUG_TRACE("start: application: ((lambda (void-object) (lambda () void-object)) (if #f #f \'void))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: if: (if #f #f \'void)") ;

	machine.reg[RES] = makeSchemeBool(FALSE);
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14121;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_14122;
	If_Else_14121:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = schemeVoid ;
	If_Done_14122:

	DEBUG_TRACE("end: if: (if #f #f \'void)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (void-object) (lambda () void-object))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14126 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14127;
	Closure_Code_14126:
	FUNCTION_ENTER("(lambda (void-object) (lambda () void-object))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda () void-object)") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14124 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14125;
	Closure_Code_14124:
	FUNCTION_ENTER("(lambda () void-object)");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: var bound: void-object") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: void-object") ;
	FUNCTION_EXIT ("(lambda () void-object)");
	Continue_14125:
	DEBUG_TRACE("end: lambda: (lambda () void-object)") ;
	FUNCTION_EXIT ("(lambda (void-object) (lambda () void-object))");
	Continue_14127:
	DEBUG_TRACE("end: lambda: (lambda (void-object) (lambda () void-object))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14123) ;
	ret_from_app_14123:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (void-object) (lambda () void-object)) (if #f #f \'void))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("void") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define void ((lambda (void-object) (lambda () void-object)) (if #f #f \'void)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14120:
	
	pushDummyFrame(&&exit_14128) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define void\? ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void))) **********") ;
	DEBUG_TRACE("start: def: (define void\? ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void)))") ;
	DEBUG_TRACE("start: application: ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (void)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	/* calculating the closure */
	DEBUG_TRACE("start: var free: void") ;
	machine.reg[RES] = getSymbol("void") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: void") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 0, machine.reg[1], &&ret_from_app_14129) ;
	ret_from_app_14129:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (void)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (void-object) (lambda (x) (eq\? x void-object)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14133 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14134;
	Closure_Code_14133:
	FUNCTION_ENTER("(lambda (void-object) (lambda (x) (eq\? x void-object)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda (x) (eq\? x void-object))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14131 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14132;
	Closure_Code_14131:
	FUNCTION_ENTER("(lambda (x) (eq\? x void-object))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (eq\? x void-object)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var bound: void-object") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: void-object") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (eq\? x void-object)") ;
	FUNCTION_EXIT ("(lambda (x) (eq\? x void-object))");
	Continue_14132:
	DEBUG_TRACE("end: lambda: (lambda (x) (eq\? x void-object))") ;
	FUNCTION_EXIT ("(lambda (void-object) (lambda (x) (eq\? x void-object)))");
	Continue_14134:
	DEBUG_TRACE("end: lambda: (lambda (void-object) (lambda (x) (eq\? x void-object)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14130) ;
	ret_from_app_14130:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("void\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define void\? ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14128:
	
	pushDummyFrame(&&exit_14135) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string-append (lambda s (list->string (apply append (map string->list s))))) **********") ;
	DEBUG_TRACE("start: def: (define string-append (lambda s (list->string (apply append (map string->list s)))))") ;
	DEBUG_TRACE("start: lambda opt: (lambda s (list->string (apply append (map string->list s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_14136) ;
	goto Continue_14137 ;
	Closure_Code_14136:
	FUNCTION_ENTER("(lambda s (list->string (apply append (map string->list s))))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_14139:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_14140 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_14139 ;
	shift_frame_up_loop_end_14140:
	machine.fp += 1 ;
	goto after_frame_shift_14138 ;
	after_frame_shift_14138:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (list->string (apply append (map string->list s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (apply append (map string->list s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (map string->list s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14141) ;
	ret_from_app_14141:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map string->list s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: append") ;
	machine.reg[RES] = getSymbol("append") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14142) ;
	ret_from_app_14142:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply append (map string->list s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->string") ;
	machine.reg[RES] = getSymbol("list->string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->string") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->string (apply append (map string->list s)))") ;
	FUNCTION_EXIT("(lambda s (list->string (apply append (map string->list s))))") ;
	Continue_14137:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (list->string (apply append (map string->list s))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string-append") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string-append (lambda s (list->string (apply append (map string->list s)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14135:
	
	pushDummyFrame(&&exit_14143) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define vector-append (lambda s (list->vector (apply append (map vector->list s))))) **********") ;
	DEBUG_TRACE("start: def: (define vector-append (lambda s (list->vector (apply append (map vector->list s)))))") ;
	DEBUG_TRACE("start: lambda opt: (lambda s (list->vector (apply append (map vector->list s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_14144) ;
	goto Continue_14145 ;
	Closure_Code_14144:
	FUNCTION_ENTER("(lambda s (list->vector (apply append (map vector->list s))))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_14147:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_14148 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_14147 ;
	shift_frame_up_loop_end_14148:
	machine.fp += 1 ;
	goto after_frame_shift_14146 ;
	after_frame_shift_14146:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (list->vector (apply append (map vector->list s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (apply append (map vector->list s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (map vector->list s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: vector->list") ;
	machine.reg[RES] = getSymbol("vector->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector->list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14149) ;
	ret_from_app_14149:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map vector->list s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: append") ;
	machine.reg[RES] = getSymbol("append") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14150) ;
	ret_from_app_14150:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply append (map vector->list s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->vector") ;
	machine.reg[RES] = getSymbol("list->vector") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->vector") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->vector (apply append (map vector->list s)))") ;
	FUNCTION_EXIT("(lambda s (list->vector (apply append (map vector->list s))))") ;
	Continue_14145:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (list->vector (apply append (map vector->list s))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("vector-append") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define vector-append (lambda s (list->vector (apply append (map vector->list s)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14143:
	
	pushDummyFrame(&&exit_14151) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define append ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define append ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14172 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14173;
	Closure_Code_14172:
	FUNCTION_ENTER("(lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! binary-append (box binary-append))") ;
	DEBUG_TRACE("start: application: (box binary-append)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: binary-append") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary-append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14153) ;
	ret_from_app_14153:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box binary-append)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! binary-append (box binary-append))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14161 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14162;
	Closure_Code_14161:
	FUNCTION_ENTER("(lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2)))") ;

	DEBUG_TRACE("start: application: (null\? s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14154) ;
	ret_from_app_14154:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14159;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	goto If_Done_14160;
	If_Else_14159:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref binary-append 0) (cdr s1) s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14155) ;
	ret_from_app_14155:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s1)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref binary-append 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-append") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14157) ;
	ret_from_app_14157:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref binary-append 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14156) ;
	ret_from_app_14156:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref binary-append 0) (cdr s1) s2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14158) ;
	ret_from_app_14158:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))") ;
	If_Done_14160:

	DEBUG_TRACE("end: if: (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2)))") ;
	FUNCTION_EXIT ("(lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))");
	Continue_14162:
	DEBUG_TRACE("end: lambda: (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: binary-append") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary-append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_14163) ;
	ret_from_app_14163:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14170 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14171;
	Closure_Code_14170:
	FUNCTION_ENTER("(lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda s (foldr (vector-ref binary-append 0) \'() s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_14164) ;
	goto Continue_14165 ;
	Closure_Code_14164:
	FUNCTION_ENTER("(lambda s (foldr (vector-ref binary-append 0) \'() s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_14167:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_14168 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_14167 ;
	shift_frame_up_loop_end_14168:
	machine.fp += 1 ;
	goto after_frame_shift_14166 ;
	after_frame_shift_14166:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr (vector-ref binary-append 0) \'() s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-ref binary-append 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-append") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14169) ;
	ret_from_app_14169:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref binary-append 0)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr (vector-ref binary-append 0) \'() s)") ;
	FUNCTION_EXIT("(lambda s (foldr (vector-ref binary-append 0) \'() s))") ;
	Continue_14165:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (foldr (vector-ref binary-append 0) \'() s))") ;
	FUNCTION_EXIT ("(lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))");
	Continue_14171:
	DEBUG_TRACE("end: lambda: (lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))") ;
	FUNCTION_EXIT ("(lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))))");
	Continue_14173:
	DEBUG_TRACE("end: lambda: (lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14152) ;
	ret_from_app_14152:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("append") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define append ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14151:
	
	pushDummyFrame(&&exit_14174) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define reverse ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define reverse ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14192 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14193;
	Closure_Code_14192:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14176) ;
	ret_from_app_14176:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14184 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14185;
	Closure_Code_14184:
	FUNCTION_ENTER("(lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r)))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14177) ;
	ret_from_app_14177:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14182;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: r") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: r") ;
	goto If_Done_14183;
	If_Else_14182:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (cdr s) (cons (car s) r))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cons (car s) r)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: r") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: r") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14178) ;
	ret_from_app_14178:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14179) ;
	ret_from_app_14179:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cons (car s) r)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14180) ;
	ret_from_app_14180:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14181) ;
	ret_from_app_14181:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (cdr s) (cons (car s) r))") ;
	If_Done_14183:

	DEBUG_TRACE("end: if: (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r)))") ;
	FUNCTION_EXIT ("(lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))");
	Continue_14185:
	DEBUG_TRACE("end: lambda: (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_14186) ;
	ret_from_app_14186:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (s) ((vector-ref loop 0) s \'())))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14190 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14191;
	Closure_Code_14190:
	FUNCTION_ENTER("(lambda () (lambda (s) ((vector-ref loop 0) s \'())))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda: (lambda (s) ((vector-ref loop 0) s \'()))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14188 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14189;
	Closure_Code_14188:
	FUNCTION_ENTER("(lambda (s) ((vector-ref loop 0) s \'()))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s \'())") ;
	/* Start of Pushing args */
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14187) ;
	ret_from_app_14187:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s \'())") ;
	FUNCTION_EXIT ("(lambda (s) ((vector-ref loop 0) s \'()))");
	Continue_14189:
	DEBUG_TRACE("end: lambda: (lambda (s) ((vector-ref loop 0) s \'()))") ;
	FUNCTION_EXIT ("(lambda () (lambda (s) ((vector-ref loop 0) s \'())))");
	Continue_14191:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (s) ((vector-ref loop 0) s \'())))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))))");
	Continue_14193:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14175) ;
	ret_from_app_14175:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("reverse") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define reverse ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14174:
	
	pushDummyFrame(&&exit_14194) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string-reverse (compose list->string reverse string->list)) **********") ;
	DEBUG_TRACE("start: def: (define string-reverse (compose list->string reverse string->list))") ;
	DEBUG_TRACE("start: application: (compose list->string reverse string->list)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: reverse") ;
	machine.reg[RES] = getSymbol("reverse") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: reverse") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: list->string") ;
	machine.reg[RES] = getSymbol("list->string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->string") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_14195) ;
	ret_from_app_14195:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose list->string reverse string->list)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string-reverse") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string-reverse (compose list->string reverse string->list))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14194:
	
	pushDummyFrame(&&exit_14196) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))) **********") ;
	DEBUG_TRACE("start: def: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14202 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14203;
	Closure_Code_14202:
	FUNCTION_ENTER("(lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))") ;

	DEBUG_TRACE("start: application: (zero\? i)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14197) ;
	ret_from_app_14197:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? i)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14200;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (car s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (car s)") ;
	goto If_Done_14201;
	If_Else_14200:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (list-ref (cdr s) (- i 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (- i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14198) ;
	ret_from_app_14198:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14199) ;
	ret_from_app_14199:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list-ref") ;
	machine.reg[RES] = getSymbol("list-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list-ref (cdr s) (- i 1))") ;
	If_Done_14201:

	DEBUG_TRACE("end: if: (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))") ;
	FUNCTION_EXIT ("(lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))");
	Continue_14203:
	DEBUG_TRACE("end: lambda: (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list-ref") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14196:
	
	pushDummyFrame(&&exit_14204) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list-set! (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))) **********") ;
	DEBUG_TRACE("start: def: (define list-set! (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14210 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14211;
	Closure_Code_14210:
	FUNCTION_ENTER("(lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: if: (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x))") ;

	DEBUG_TRACE("start: application: (zero\? i)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14205) ;
	ret_from_app_14205:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? i)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14208;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (set-car! s x)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: set-car!") ;
	machine.reg[RES] = getSymbol("set-car!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: set-car!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (set-car! s x)") ;
	goto If_Done_14209;
	If_Else_14208:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (list-set! (cdr s) (- i 1) x)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14206) ;
	ret_from_app_14206:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14207) ;
	ret_from_app_14207:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list-set!") ;
	machine.reg[RES] = getSymbol("list-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list-set! (cdr s) (- i 1) x)") ;
	If_Done_14209:

	DEBUG_TRACE("end: if: (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x))") ;
	FUNCTION_EXIT ("(lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))");
	Continue_14211:
	DEBUG_TRACE("end: lambda: (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list-set!") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list-set! (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14204:
	
	pushDummyFrame(&&exit_14212) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define max ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b)))) **********") ;
	DEBUG_TRACE("start: def: (define max ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (if (> a b) a b))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14216 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14217;
	Closure_Code_14216:
	FUNCTION_ENTER("(lambda (a b) (if (> a b) a b))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (> a b) a b)") ;

	DEBUG_TRACE("start: application: (> a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: >") ;
	machine.reg[RES] = getSymbol(">") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: >") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14213) ;
	ret_from_app_14213:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (> a b)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14214;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	goto If_Done_14215;
	If_Else_14214:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	If_Done_14215:

	DEBUG_TRACE("end: if: (if (> a b) a b)") ;
	FUNCTION_EXIT ("(lambda (a b) (if (> a b) a b))");
	Continue_14217:
	DEBUG_TRACE("end: lambda: (lambda (a b) (if (> a b) a b))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-max) (lambda (a . s) (foldr binary-max a s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14224 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14225;
	Closure_Code_14224:
	FUNCTION_ENTER("(lambda (binary-max) (lambda (a . s) (foldr binary-max a s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda opt: (lambda (a . s) (foldr binary-max a s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_14219) ;
	goto Continue_14220 ;
	Closure_Code_14219:
	FUNCTION_ENTER("(lambda (a . s) (foldr binary-max a s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_14222:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_14223 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_14222 ;
	shift_frame_up_loop_end_14223:
	machine.fp += 1 ;
	goto after_frame_shift_14221 ;
	after_frame_shift_14221:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr binary-max a s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-max") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-max") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr binary-max a s)") ;
	FUNCTION_EXIT("(lambda (a . s) (foldr binary-max a s))") ;
	Continue_14220:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (a . s) (foldr binary-max a s))") ;
	FUNCTION_EXIT ("(lambda (binary-max) (lambda (a . s) (foldr binary-max a s)))");
	Continue_14225:
	DEBUG_TRACE("end: lambda: (lambda (binary-max) (lambda (a . s) (foldr binary-max a s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14218) ;
	ret_from_app_14218:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("max") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define max ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14212:
	
	pushDummyFrame(&&exit_14226) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define min ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b)))) **********") ;
	DEBUG_TRACE("start: def: (define min ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (if (< a b) a b))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14230 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14231;
	Closure_Code_14230:
	FUNCTION_ENTER("(lambda (a b) (if (< a b) a b))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (< a b) a b)") ;

	DEBUG_TRACE("start: application: (< a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: <") ;
	machine.reg[RES] = getSymbol("<") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: <") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14227) ;
	ret_from_app_14227:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (< a b)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14228;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	goto If_Done_14229;
	If_Else_14228:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	If_Done_14229:

	DEBUG_TRACE("end: if: (if (< a b) a b)") ;
	FUNCTION_EXIT ("(lambda (a b) (if (< a b) a b))");
	Continue_14231:
	DEBUG_TRACE("end: lambda: (lambda (a b) (if (< a b) a b))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-min) (lambda (a . s) (foldr binary-min a s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14238 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14239;
	Closure_Code_14238:
	FUNCTION_ENTER("(lambda (binary-min) (lambda (a . s) (foldr binary-min a s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda opt: (lambda (a . s) (foldr binary-min a s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_14233) ;
	goto Continue_14234 ;
	Closure_Code_14233:
	FUNCTION_ENTER("(lambda (a . s) (foldr binary-min a s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_14236:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_14237 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_14236 ;
	shift_frame_up_loop_end_14237:
	machine.fp += 1 ;
	goto after_frame_shift_14235 ;
	after_frame_shift_14235:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr binary-min a s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-min") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-min") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr binary-min a s)") ;
	FUNCTION_EXIT("(lambda (a . s) (foldr binary-min a s))") ;
	Continue_14234:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (a . s) (foldr binary-min a s))") ;
	FUNCTION_EXIT ("(lambda (binary-min) (lambda (a . s) (foldr binary-min a s)))");
	Continue_14239:
	DEBUG_TRACE("end: lambda: (lambda (binary-min) (lambda (a . s) (foldr binary-min a s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14232) ;
	ret_from_app_14232:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("min") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define min ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14226:
	
	pushDummyFrame(&&exit_14240) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define gcd ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define gcd ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14264 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14265;
	Closure_Code_14264:
	FUNCTION_ENTER("(lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! binary-gcd (box binary-gcd))") ;
	DEBUG_TRACE("start: application: (box binary-gcd)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: binary-gcd") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary-gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14242) ;
	ret_from_app_14242:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box binary-gcd)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! binary-gcd (box binary-gcd))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14253 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14254;
	Closure_Code_14253:
	FUNCTION_ENTER("(lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b)))") ;

	DEBUG_TRACE("start: application: (zero\? b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14243) ;
	ret_from_app_14243:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? b)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14251;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	goto If_Done_14252;
	If_Else_14251:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (remainder a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: remainder") ;
	machine.reg[RES] = getSymbol("remainder") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: remainder") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14244) ;
	ret_from_app_14244:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (remainder a b)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14249 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14250;
	Closure_Code_14249:
	FUNCTION_ENTER("(lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (zero\? r) b ((vector-ref binary-gcd 0) b r))") ;

	DEBUG_TRACE("start: application: (zero\? r)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: r") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: r") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14245) ;
	ret_from_app_14245:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? r)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14247;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: b") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: b") ;
	goto If_Done_14248;
	If_Else_14247:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref binary-gcd 0) b r)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: r") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: r") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: b") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: b") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref binary-gcd 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-gcd") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14246) ;
	ret_from_app_14246:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref binary-gcd 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref binary-gcd 0) b r)") ;
	If_Done_14248:

	DEBUG_TRACE("end: if: (if (zero\? r) b ((vector-ref binary-gcd 0) b r))") ;
	FUNCTION_EXIT ("(lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r)))");
	Continue_14250:
	DEBUG_TRACE("end: lambda: (lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))") ;
	If_Done_14252:

	DEBUG_TRACE("end: if: (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b)))") ;
	FUNCTION_EXIT ("(lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))");
	Continue_14254:
	DEBUG_TRACE("end: lambda: (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: binary-gcd") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary-gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_14255) ;
	ret_from_app_14255:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14262 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14263;
	Closure_Code_14262:
	FUNCTION_ENTER("(lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_14256) ;
	goto Continue_14257 ;
	Closure_Code_14256:
	FUNCTION_ENTER("(lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_14259:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_14260 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_14259 ;
	shift_frame_up_loop_end_14260:
	machine.fp += 1 ;
	goto after_frame_shift_14258 ;
	after_frame_shift_14258:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr (vector-ref binary-gcd 0) a s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-ref binary-gcd 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-gcd") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14261) ;
	ret_from_app_14261:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref binary-gcd 0)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr (vector-ref binary-gcd 0) a s)") ;
	FUNCTION_EXIT("(lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))") ;
	Continue_14257:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))") ;
	FUNCTION_EXIT ("(lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))");
	Continue_14263:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))") ;
	FUNCTION_EXIT ("(lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))))");
	Continue_14265:
	DEBUG_TRACE("end: lambda: (lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14241) ;
	ret_from_app_14241:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("gcd") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define gcd ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14240:
	
	pushDummyFrame(&&exit_14266) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define lcm (lambda s (/ (apply * s) (apply gcd s)))) **********") ;
	DEBUG_TRACE("start: def: (define lcm (lambda s (/ (apply * s) (apply gcd s))))") ;
	DEBUG_TRACE("start: lambda opt: (lambda s (/ (apply * s) (apply gcd s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_14267) ;
	goto Continue_14268 ;
	Closure_Code_14267:
	FUNCTION_ENTER("(lambda s (/ (apply * s) (apply gcd s)))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_14270:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_14271 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_14270 ;
	shift_frame_up_loop_end_14271:
	machine.fp += 1 ;
	goto after_frame_shift_14269 ;
	after_frame_shift_14269:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (/ (apply * s) (apply gcd s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (apply gcd s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: gcd") ;
	machine.reg[RES] = getSymbol("gcd") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14272) ;
	ret_from_app_14272:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply gcd s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (apply * s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: *") ;
	machine.reg[RES] = getSymbol("*") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: *") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14273) ;
	ret_from_app_14273:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply * s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: /") ;
	machine.reg[RES] = getSymbol("/") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: /") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (/ (apply * s) (apply gcd s))") ;
	FUNCTION_EXIT("(lambda s (/ (apply * s) (apply gcd s)))") ;
	Continue_14268:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (/ (apply * s) (apply gcd s)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("lcm") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define lcm (lambda s (/ (apply * s) (apply gcd s))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14266:
	
	pushDummyFrame(&&exit_14274) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define number\? integer\?) **********") ;
	DEBUG_TRACE("start: def: (define number\? integer\?)") ;
	DEBUG_TRACE("start: var free: integer\?") ;
	machine.reg[RES] = getSymbol("integer?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: integer\?") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("number\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define number\? integer\?)") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14274:
	
	pushDummyFrame(&&exit_14275) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define abs (lambda (x) (if (positive\? x) x (binary-sub x)))) **********") ;
	DEBUG_TRACE("start: def: (define abs (lambda (x) (if (positive\? x) x (binary-sub x))))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (if (positive\? x) x (binary-sub x)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14279 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14280;
	Closure_Code_14279:
	FUNCTION_ENTER("(lambda (x) (if (positive\? x) x (binary-sub x)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (positive\? x) x (binary-sub x))") ;

	DEBUG_TRACE("start: application: (positive\? x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: positive\?") ;
	machine.reg[RES] = getSymbol("positive?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: positive\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14276) ;
	ret_from_app_14276:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (positive\? x)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_14277;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	goto If_Done_14278;
	If_Else_14277:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (binary-sub x)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-sub") ;
	machine.reg[RES] = getSymbol("binary-sub") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-sub") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-sub x)") ;
	If_Done_14278:

	DEBUG_TRACE("end: if: (if (positive\? x) x (binary-sub x))") ;
	FUNCTION_EXIT ("(lambda (x) (if (positive\? x) x (binary-sub x)))");
	Continue_14280:
	DEBUG_TRACE("end: lambda: (lambda (x) (if (positive\? x) x (binary-sub x)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("abs") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define abs (lambda (x) (if (positive\? x) x (binary-sub x))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14275:
	
	pushDummyFrame(&&exit_14281) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define sgn (lambda (x) (binary-div x (abs x)))) **********") ;
	DEBUG_TRACE("start: def: (define sgn (lambda (x) (binary-div x (abs x))))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (binary-div x (abs x)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14283 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14284;
	Closure_Code_14283:
	FUNCTION_ENTER("(lambda (x) (binary-div x (abs x)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (binary-div x (abs x))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (abs x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: abs") ;
	machine.reg[RES] = getSymbol("abs") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: abs") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14282) ;
	ret_from_app_14282:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (abs x)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-div") ;
	machine.reg[RES] = getSymbol("binary-div") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-div") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-div x (abs x))") ;
	FUNCTION_EXIT ("(lambda (x) (binary-div x (abs x)))");
	Continue_14284:
	DEBUG_TRACE("end: lambda: (lambda (x) (binary-div x (abs x)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("sgn") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define sgn (lambda (x) (binary-div x (abs x))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14281:
	
	pushDummyFrame(&&exit_14285) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define remainder (lambda (m n) (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n)))))) **********") ;
	DEBUG_TRACE("start: def: (define remainder (lambda (m n) (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (m n) (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_14292 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_14293;
	Closure_Code_14292:
	FUNCTION_ENTER("(lambda (m n) (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n))))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (binary-sub (abs m) (binary-div (abs m) (abs n)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (binary-div (abs m) (abs n))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (abs n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: abs") ;
	machine.reg[RES] = getSymbol("abs") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: abs") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14286) ;
	ret_from_app_14286:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (abs n)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (abs m)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: m") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: m") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: abs") ;
	machine.reg[RES] = getSymbol("abs") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: abs") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14287) ;
	ret_from_app_14287:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (abs m)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-div") ;
	machine.reg[RES] = getSymbol("binary-div") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-div") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14288) ;
	ret_from_app_14288:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-div (abs m) (abs n))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (abs m)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: m") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: m") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: abs") ;
	machine.reg[RES] = getSymbol("abs") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: abs") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14289) ;
	ret_from_app_14289:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (abs m)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-sub") ;
	machine.reg[RES] = getSymbol("binary-sub") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-sub") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_14290) ;
	ret_from_app_14290:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-sub (abs m) (binary-div (abs m) (abs n)))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (sgn m)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: m") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: m") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: sgn") ;
	machine.reg[RES] = getSymbol("sgn") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: sgn") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_14291) ;
	ret_from_app_14291:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (sgn m)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-mul") ;
	machine.reg[RES] = getSymbol("binary-mul") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-mul") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n))))") ;
	FUNCTION_EXIT ("(lambda (m n) (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n)))))");
	Continue_14293:
	DEBUG_TRACE("end: lambda: (lambda (m n) (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("remainder") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define remainder (lambda (m n) (binary-mul (sgn m) (binary-sub (abs m) (binary-div (abs m) (abs n))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_14285:

